public async Task <IActionResult> EditRole([FromBody] AspNetRoleModel model) { if (ModelState.IsValid) { try { if (model == null) { throw new NullReferenceException(_localizer["InvalidModel"]); } await _roleService.EditRole(model); return(Ok()); } catch (Exception x) { Log.Error($"ERROR Roles/CreateRole"); return(StatusCode(500, x.Message)); } } else { return(BadRequest(_localizer["FillRequiredFields"])); } }
public async Task EditRole(AspNetRoleModel model) { var aspNetRole = _context.AspNetRoles.Where(x => x.Id.ToLower().Trim() == model.Id.Trim().ToLower()).SingleOrDefault(); if (aspNetRole == null) { throw new NullReferenceException(String.Concat(_localizer["EditDataError"], _localizer["RoleNotFound"])); } aspNetRole.Name = model.Name.Trim(); aspNetRole.NormalizedName = model.Name.ToUpper().Trim(); var users = await _context.AspNetUserRoles.Where(x => x.RoleId == model.Id).ToListAsync(); var userToRemove = users.Where(x => !model.Users.Select(u => u.Id).Contains(x.UserId)); var userToAdd = model.Users.Where(x => !users.Select(u => u.UserId).Contains(x.Id)); foreach (var user in userToRemove) { _context.Entry <AspNetUserRoles>(user).State = EntityState.Deleted; } foreach (var user in userToAdd) { var aspNetUserRole = new AspNetUserRoles { RoleId = aspNetRole.Id, UserId = user.Id }; await _context.AspNetUserRoles.AddAsync(aspNetUserRole); } await _context.SaveChangesAsync(); }
public static AspNetRole CreateFromClientToServer(this AspNetRoleModel source) { return(new AspNetRole { Id = source.Id, Name = source.Name }); }
public RolesController() { _db = new AspNetRoleModel(); }