private async Task FillViewDataAsync(UserViewModelBase viewModel = null) { var data = await HandlerDispatcher.ExecuteQueryAsync(new GetDataForUserDetailsQuery()); ViewData["StudyPlaces"] = data.StudyPlaces; ViewData["CityId"] = new SelectList(data.Cities, "Id", "Name", viewModel?.CityId); }
private async Task ValidateAsync(UserViewModelBase model) { if (!User.IsInRole(Role.Admin)) { var id = _userManager.GetUserId(User); var ids = model.SelectedAreas.ToArray(); var hasClaimsOnSelectedAreas = await _context.UsersAreas.Where(x => x.UserId == id).AllAsync(x => ids.Contains(x.AreaId)); if (!hasClaimsOnSelectedAreas) { ModelState.AddModelError("No Claims", "No claims on selected Areas"); } var possibleRoles = new List <string> { Role.AreaAdmin, Role.ReadOnlyUser, Role.ReadWriteUser }; if (!possibleRoles.Contains(model.Role)) { ModelState.AddModelError("Not authorized", "Not authorized for selected role"); } } }