public IActionResult DeleteRole(RoleDeleteModel model)
        {
            if (ModelState.IsValid)
            {
                using (var authUow = _authorizationDataService.StartUnitOfWork())
                {
                    var activityRoles = authUow.ActivityRoleRepository.ByRole(model.Id);
                    foreach (var activityRole in activityRoles)
                    {
                        authUow.ActivityRoleRepository.Delete(activityRole);
                    }

                    using (var identityUow = _identityDataService.StartUnitOfWork(authUow))
                    {
                        var role      = identityUow.RoleRepository.Get(model.Id);
                        var roleUsers = identityUow.UserRoleRepository.FindByRole(role).ToList();
                        var userRoles = roleUsers
                                        .Select(rU => identityUow.UserRoleRepository.FindByUserIdAndRoleId(rU, role.Id)).ToList();

                        foreach (var userRole in userRoles)
                        {
                            identityUow.UserRoleRepository.Delete(userRole);
                        }
                        identityUow.RoleRepository.Delete(role);

                        authUow.Commit();
                        return(RedirectToAction(nameof(ManageRoles)));
                    }
                }
            }

            return(View());
        }
Пример #2
0
        public async Task <IActionResult> OnGetAsync(string Id)
        {
            if (string.IsNullOrEmpty(Id))
            {
                return(BadRequest());
            }
            Role selectedRole = await roleManager.FindByIdAsync(Id);

            if (selectedRole == null)
            {
                return(NotFound());
            }

            Model = Mapper.Map(selectedRole, Model);
            return(Page());
        }