public Task <AdminListByLocationDto> GetUserListByLocation(int locationId, GetAdminListParameters parameters) { var users = _context.UserLocationAssignments .Include(x => x.Status) .Include(x => x.UserModel) .ThenInclude(x => x.UserKeyMappings) .Include(x => x.UserPermission) .Where(x => x.LocationId == locationId); var count = users.CountAsync(); var enumtype = typeof(statusCode); List <AdminListItem> userList = users.Select(x => new AdminListItem() { id = x.UserModel.UserID, name = x.UserModel.Name, email = x.UserModel.Email, state = Enum.GetName(enumtype, x.State), disabledReason = x.DisabledReason, status = new Dictionary <string, string> { { "id", x.StatusId.ToString() }, { "name", x.Status.Name } }, toolkitInfo = _mapper.Map <ToolkitInfoDto>(x.UserModel.UserKeyMappings.FirstOrDefault(x => x.LocationId == locationId)), permissions = _mapper.Map <UserPermissionCompactDto>(x.UserPermission), recentActivity = _mapper.Map <UserActivityCompactDto>(x.UserModel.UserActivities.FirstOrDefault(x => x.LocationId == locationId)), }).ToList(); var result = new AdminListByLocationDto() { totalItems = count.Result, items = userList, }; return(Task.FromResult(result)); }
public async Task <IActionResult> getAdminLocationInfo([FromRoute] int locationId, [FromQuery] GetAdminListParameters parameters) { if (!(await _authorizationService .AuthorizeAsync(User, locationId, Operations.ReadEdit)).Succeeded) { return(Forbid()); } var list = await _repository.GetUserListByLocation(locationId, parameters); return(Ok(list)); }