public async Task <IActionResult> UpdateRole(PostRoleViewModel model) { if (ModelState.IsValid) { var isUpdate = await _userData.UpdateRoleName(model.OldName, model.Name); if (!isUpdate) { ModelState.AddModelError("", "Роль с таким именем уже существует"); return(View(model)); } var roleEntity = await _userData.FindRole(model.Name); await _accessManager.RemoveAllRolePermissions(model.Name); var subsystemAccesses = model.SubsystemAccesses .FindAll(o => o.IsOptionSelected) .ToList(); if (subsystemAccesses.Count == 0) { ModelState.AddModelError("", "Выберите хотя бы одну подсистему для доступа"); return(View(model)); } foreach (var subsystem in subsystemAccesses) { _accessManager.IssuePermission(roleEntity, subsystem.Name); } return(RedirectToAction("Index", "Admin")); } return(View(model)); }