public ActionResult Create() { var model = new BOGroupCreateViewModel { PermissionGroups = Mapper.Map <List <PermissionGroupViewModel> >(PermissionManager.Groups) }; return(View(model)); }
public async Task <ActionResult> Edit(BOGroupCreateViewModel model) { IEnumerable <string> selectedPermissions = model.PermissionGroups .SelectMany(x => x.Permissions.Where(y => y.IsSelected)).Select(x => x.Name); if (!ModelState.IsValid) { model.PermissionGroups = Mapper.Map <List <PermissionGroupViewModel> >(PermissionManager.Groups); model.SetSelectedPermissions(selectedPermissions); return(View(model)); } ApplicationRole role = await RoleManager.FindByIdAsync(model.Id); if (role == null) { throw new HttpException(404, "Not found"); } ApplicationRole existingRoleByName = await RoleManager.FindByNameAsync(model.Name); if (existingRoleByName != null && existingRoleByName.Id != model.Id) { ModelState.AddModelError(nameof(model.Name), Res.GroupAlreadyExistsMessage); model.PermissionGroups = Mapper.Map <List <PermissionGroupViewModel> >(PermissionManager.Groups); model.SetSelectedPermissions(selectedPermissions); return(View(model)); } ApplicationRole oldRole = Mapper.Map <ApplicationRole>(role); role.Name = model.Name; IdentityResult result = await RoleManager.UpdateAsync(role, selectedPermissions); if (!result.Succeeded) { throw new Exception(result.Errors.FirstOrDefault()); } var userInfo = new BackOfficeUserInfo(); Notify.Success(Resources.CommonStrings.RegisterEditedSuccessMessage); return(RedirectToAction("Index")); }
public async Task <ActionResult> Create(BOGroupCreateViewModel model) { Func <ViewResult> errorView = () => { model.PermissionGroups = Mapper.Map <List <PermissionGroupViewModel> >(PermissionManager.Groups); return(View(model)); }; if (!ModelState.IsValid) { return(errorView()); } ApplicationRole existingRole = await RoleManager.FindByNameAsync(model.Name); if (existingRole != null) { ModelState.AddModelError(nameof(model.Name), Res.GroupAlreadyExistsMessage); return(errorView()); } var role = Mapper.Map <ApplicationRole>(model); IEnumerable <string> permissions = model.PermissionGroups .SelectMany(x => x.Permissions.Where(y => y.IsSelected)).Select(x => x.Name); IdentityResult result = await RoleManager.CreateAsync(role, permissions, IdEmpresa, IdUsuario); if (!result.Succeeded) { throw new Exception(result.Errors.FirstOrDefault()); } var userInfo = new BackOfficeUserInfo(); Notify.Success(Resources.CommonStrings.RegisterCreatedSuccessMessage); return(RedirectToAction("Index")); }