public PlacesResponse GetPage(int page, int sizePage, bool @descending, string orderBy, string search) { if (!_fields.Contains(orderBy)) { return(new PlacesResponse($"Invalid order filter: {orderBy}")); } if (sizePage < 5 && sizePage > 100) { return(new PlacesResponse($"Page size should be greater than 5 and lower than 100")); } if (page < 1) { return(new PlacesResponse($"Page should be greater than 1 : {page}")); } var result = _unitOfWork.Locations.GetPage(page, sizePage, descending, search, orderBy); if (result.PageCount < page && result.RowCount != 0) { return(new PlacesResponse($"Page should be lowest than {result.PageCount}")); } if (result.RowCount == 0) { var noContent = PagedResult <Place> .NoContent <PlaceInfoResource>(result); return(new PlacesResponse(noContent)); } var viewPlaces = PagedResult <Place> .CopyPageInfo <PlaceInfoResource>(result); var listOfViewPlaces = result.Results.Select(place => new PlaceInfoResource(place)).ToList(); viewPlaces.Results = listOfViewPlaces; return(new PlacesResponse(viewPlaces)); }