public async Task <IActionResult> SetUserRole(SetUserRoleBindingModel model, string id) { if (!this.ModelState.IsValid) { return(BadRequest(ModelState.Values.SelectMany(v => v.Errors).Select(error => error.ErrorMessage))); } await this.adminService.SetUserRole(id, model); return(RedirectToAction(nameof(this.GetUserData))); }
public async Task SetUserRole(string id, SetUserRoleBindingModel model) { var user = this.dbContext.Users .Include(u => u.Roles) .Where(u => u.IsDeleted == false) .Where(u => u.Id == id) .SingleOrDefault(); var userRoleFromDb = dbContext.UserRoles.SingleOrDefault(ur => ur.UserId == user.Id); this.dbContext.UserRoles.Attach(userRoleFromDb); this.dbContext.UserRoles.Remove(userRoleFromDb); this.dbContext.SaveChanges(); var chosenRole = dbContext.Roles.SingleOrDefault(r => r.Name == model.Roles.FirstOrDefault()); userRoleFromDb.RoleId = chosenRole.Id; userRoleFromDb.UserId = user.Id; this.dbContext.Add(userRoleFromDb); await this.dbContext.SaveChangesAsync(); }
public async Task <SetUserRoleBindingModel> GetUserAndRoles(string id) { var user = this.dbContext.Users .Include(u => u.Roles) .Where(u => u.IsDeleted == false) .Where(u => u.Id == id) .SingleOrDefault(); var model = new SetUserRoleBindingModel(); model.FullName = $"{user.FirstName} {user.LastName}"; model.Roles = GetUserRoles().ToList(); foreach (var role in user.Roles) { var roleName = await this.GetRoleNameById(role.RoleId); model.CurrentUserRole = roleName; } model.Roles.Remove(model.CurrentUserRole); return(model); }