public async Task <IActionResult> AddRole(PostRoleViewModel model) { if (ModelState.IsValid) { var isAdded = await _userData.AddRole(model.Name); if (!isAdded) { ModelState.AddModelError("", "Роль с таким именем уже существует"); return(View(model)); } var roleEntity = await _userData.FindRole(model.Name); if (roleEntity == null) { ModelState.AddModelError("", "Не удалось добавить роль"); return(View(model)); } 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)); }