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();
        }
示例#3
0
 public static AspNetRole CreateFromClientToServer(this AspNetRoleModel source)
 {
     return(new AspNetRole
     {
         Id = source.Id,
         Name = source.Name
     });
 }
示例#4
0
 public RolesController()
 {
     _db = new AspNetRoleModel();
 }