public override void ExecuteCommand() { Log.Info( "Delete the user account and all packages for '{0}'.", Username); using (var sqlConnection = new SqlConnection(ConnectionString)) using (var dbExecutor = new SqlExecutor(sqlConnection)) { sqlConnection.Open(); var user = Util.GetUser(dbExecutor, Username); if (user == null) { Log.Error("User was not found"); return; } Log.Info("User found with EmailAddress '{0}' and UnconfirmedEmailAddress '{1}'", user.EmailAddress, user.UnconfirmedEmailAddress); var packageCount = user.PackageRegistrationIds.Count(); var packageNumber = 0; foreach (var packageId in user.PackageRegistrationIds) { Log.Info("Deleting package '{0}' because '{1}' is the sole owner. ({2}/{3})", packageId, Username, ++packageNumber, packageCount); var deletePackageTask = new DeleteAllPackageVersionsTask { ConnectionString = ConnectionString, StorageAccount = StorageAccount, PackageId = packageId, WhatIf = WhatIf }; deletePackageTask.Execute(); } Log.Info("Deleting remaining package ownership records (from shared ownership)"); if (!WhatIf) { dbExecutor.Execute( "DELETE pro FROM PackageRegistrationOwners pro WHERE pro.UserKey = @userKey", new { userKey = user.Key }); } Log.Info("Deleting package ownership requests"); if (!WhatIf) { dbExecutor.Execute( "DELETE por FROM PackageOwnerRequests por WHERE @userKey IN (por.NewOwnerKey, por.RequestingOwnerKey)", new { userKey = user.Key }); } Log.Info("Deleting the user record itself"); if (!WhatIf) { dbExecutor.Execute( "DELETE u FROM Users u WHERE u.[Key] = @userKey", new { userKey = user.Key }); } Log.Info( "Deleted all packages owned solely by '{0}' as well as the user record." , user.Username); } }
public override void ExecuteCommand() { Log.Info( "Delete the user account and all packages for '{0}'.", Username); using (var sqlConnection = new SqlConnection(ConnectionString.ConnectionString)) using (var dbExecutor = new SqlExecutor(sqlConnection)) { sqlConnection.Open(); var user = Util.GetUser(dbExecutor, Username); if (user == null) { Log.Error("User was not found"); return; } Log.Info("User found with EmailAddress '{0}' and UnconfirmedEmailAddress '{1}'", user.EmailAddress, user.UnconfirmedEmailAddress); var packageCount = user.PackageRegistrationIds.Count(); var packageNumber = 0; foreach (var packageId in user.PackageRegistrationIds) { Log.Info("Deleting package '{0}' because '{1}' is the sole owner. ({2}/{3})", packageId, Username, ++packageNumber, packageCount); var deletePackageTask = new DeleteAllPackageVersionsTask { ConnectionString = ConnectionString, StorageAccount = StorageAccount, PackageId = packageId, WhatIf = WhatIf }; deletePackageTask.Execute(); } Log.Info("Deleting remaining package ownership records (from shared ownership)"); if (!WhatIf) { dbExecutor.Execute( "DELETE pro FROM PackageRegistrationOwners pro WHERE pro.UserKey = @userKey", new { userKey = user.Key }); } Log.Info("Deleting package ownership requests"); if (!WhatIf) { dbExecutor.Execute( "DELETE por FROM PackageOwnerRequests por WHERE @userKey IN (por.NewOwnerKey, por.RequestingOwnerKey)", new { userKey = user.Key }); } Log.Info("Deleting the user record itself"); if (!WhatIf) { dbExecutor.Execute( "DELETE u FROM Users u WHERE u.[Key] = @userKey", new { userKey = user.Key }); } Log.Info( "Deleted all packages owned solely by '{0}' as well as the user record." , user.Username); } }