public override void ExecuteCommand()

in Source/NuGetGallery.Operations/Tasks/DeletePackageVersionTask.cs [9:59]


        public override void ExecuteCommand()
        {
            using (var sqlConnection = new SqlConnection(ConnectionString.ConnectionString))
            using (var dbExecutor = new SqlExecutor(sqlConnection))
            {
                sqlConnection.Open();

                var package = Util.GetPackage(
                    dbExecutor,
                    PackageId,
                    PackageVersion);

                if (package == null)
                {
                    Log.Error("Package version does not exist: '{0}.{1}'", PackageId, PackageVersion);
                    return;
                }

                Log.Info(
                    "Deleting package data for '{0}.{1}'", 
                    package.Id, 
                    package.Version);

                if (!WhatIf)
                {
                    dbExecutor.Execute(
                        "DELETE pa FROM PackageAuthors pa JOIN Packages p ON p.[Key] = pa.PackageKey WHERE p.[Key] = @key",
                        new { key = package.Key });
                    dbExecutor.Execute(
                        "DELETE pd FROM PackageDependencies pd JOIN Packages p ON p.[Key] = pd.PackageKey WHERE p.[Key] = @key",
                        new { key = package.Key });
                    dbExecutor.Execute(
                        "DELETE ps FROM PackageStatistics ps JOIN Packages p ON p.[Key] = ps.PackageKey WHERE p.[Key] = @key",
                        new { key = package.Key });
                    dbExecutor.Execute(
                        "DELETE pf FROM PackageFrameworks pf JOIN Packages p ON p.[Key] = pf.Package_Key WHERE p.[Key] = @key",
                        new { key = package.Key });
                    dbExecutor.Execute(
                        "DELETE p FROM Packages p JOIN PackageRegistrations pr ON pr.[Key] = p.PackageRegistrationKey WHERE p.[Key] = @key",
                        new { key = package.Key });
                }

                new DeletePackageFileTask {
                    StorageAccount = StorageAccount,
                    PackageId = package.Id,
                    PackageVersion = package.Version,
                    PackageHash = package.Hash,
                    WhatIf = WhatIf
                }.ExecuteCommand();
            }
        }