public ActionResult <IEnumerable <UserDto> > GetUsers([FromQuery] UsersResourceParameters usersResourceParameters ) { if (!_propertyMappingService.ValidMappingExistsFor <UserDto, User>(usersResourceParameters.OrderBy)) { return(BadRequest()); } var usersFromRepo = _articleLibraryRepository.GetUsers(usersResourceParameters); var previousPageLink = usersFromRepo.HasPrevious ? CreateUsersResourceUri(usersResourceParameters, ResourceUriTypes.PreviousPage) : null; var nextPageLink = usersFromRepo.HasNext ? CreateUsersResourceUri(usersResourceParameters, ResourceUriTypes.NextPage) : null; var paginationMetadata = new { totalCount = usersFromRepo.TotalCount, pageSize = usersFromRepo.PageSize, currentPage = usersFromRepo.CurrentPage, totalPages = usersFromRepo.TotalPages, previousPageLink, nextPageLink, }; Response.Headers.Add("X-Pagination", JsonSerializer.Serialize(paginationMetadata)); return(Ok(_mapper.Map <IEnumerable <UserDto> >(usersFromRepo))); }
public IActionResult GetUserCollection( [FromRoute] [ModelBinder(BinderType = typeof(ArrayModelBinder))] IEnumerable <Guid> ids) { if (ids == null) { return(BadRequest()); } var userEntities = _articleLibraryRepository.GetUsers(ids); if (ids.Count() != userEntities.Count()) { return(NotFound()); } var usersToReturn = _mapper.Map <IEnumerable <UserDto> >(userEntities); return(Ok(usersToReturn)); }