/// <summary> /// Удаляет аккаунт пользователя и все связанные данные /// </summary> /// <param name="userName"></param> /// <returns></returns> public async Task RemoveAppUserAsync(string userName) { var appUser = GetAppUser(userName); if (appUser == null) { throw new Exception($"Пользователь {userName} не найден!"); } // Удаление данных абитуриента if (appUser.Abiturient != null) { } // Удаляем все пользовательские сообщения var userMessages = await _context.UserMessages .Where(um => um.UserSenderId == appUser.Id || um.UserReceiverId == appUser.Id) .ToListAsync(); _context.UserMessages.RemoveRange(userMessages); await _context.SaveChangesAsync(); //// Удаляем все групповые сообщения // Удаляется автоматически //if (appUser.MessagesFromAppUserToStudentGroups != null && appUser.MessagesFromAppUserToStudentGroups.Count > 0) //{ //} if (appUser.UserDocuments != null && appUser.UserDocuments.Count > 0) { await _fileModelRepository.RemoveUserDocumentsAsync(appUser.UserDocuments); } // Удаление работ пользователя if (appUser.UserWorks != null && appUser.UserWorks.Count > 0) { await RemoveUserWorksAsync(appUser.UserWorks); } // Удаление повышений квалификации if (appUser.RefresherCourses != null && appUser.RefresherCourses.Count > 0) { await RemoveRefresherCoursesAsync(appUser.RefresherCourses); } // Удаление профессиональной переподготовки if (appUser.ProfessionalRetrainings != null && appUser.ProfessionalRetrainings.Count > 0) { await RemoveProfessionalRetrainingsAsync(appUser.ProfessionalRetrainings); } _context.Users.Remove(appUser); await _context.SaveChangesAsync(); //var user = userProfileRepository.GetAppUser(userName); //if (user!=null) //{ // IdentityResult result = await userManager.DeleteAsync(user); // if (result.Succeeded) // return RedirectToAction(nameof(Search)); // else // AddErrorsFromResult(result); //} //else //{ // ModelState.AddModelError("", "Пользователь не найден"); //} }