public async Task <IActionResult> DeleteConfirmed(int id) { var defaultId = _context.Perfil.SingleOrDefault(m => m.IsDefault == 1).IdPerfil; if (id == 1 || id == defaultId) { return(View("AccessDenied")); } var Perfil = await _context.Perfil.SingleOrDefaultAsync(m => m.IdPerfil == id); var users = await _context.ApplicationUsers.Where(u => u.IdPerfil == id).ToListAsync(); List <ProfileRole> default_profileroles = await _context.ProfileRole .Where(p => p.IdPerfil == defaultId) .ToListAsync(); foreach (ApplicationUsers user in users) { user.IdPerfil = defaultId; _context.ApplicationUsers.Attach(user); _context.Entry(user).Property(p => p.IdPerfil).IsModified = true; var roles = await _userManager.GetRolesAsync(user); await _userManager.RemoveFromRolesAsync(user, roles.ToArray()); foreach (ProfileRole role in default_profileroles) { string role_name = _roleManager.FindByIdAsync(role.RoleId).Result.Name; if (await _roleManager.RoleExistsAsync(role_name)) { await _userManager.AddToRoleAsync(user, role_name); } } } var profileroles = await _context.ProfileRole.Where(p => p.IdPerfil == id).ToListAsync(); _context.RemoveRange(profileroles); _context.Perfil.Remove(Perfil); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }