public async Task <IActionResult> GetListOfAquarium([FromQuery] GetAllAquariumsRequest request) { var response = await _aquariumService.GetAllAquariumsAsync(request); return(SendResponse(response)); }
public async Task <ServiceResponse <GetAllAquariumsResponse> > GetAllAquariumsAsync(GetAllAquariumsRequest request) { bool isQueryIncluded = !string.IsNullOrWhiteSpace(request.Query); var dbQuery = Context.Aquariums.AsQueryable(); if (isQueryIncluded) { string queryToLower = request.Query.ToLower(); dbQuery = dbQuery.Where(a => a.Id.ToString().ToLower().Contains(queryToLower)); } dbQuery = AquariumQuerySorter.GetAquariumsSortQuery(dbQuery, request.OrderBy); var totalNumberOfItems = dbQuery.Count(); var fishes = dbQuery.Skip((request.PageNumber - 1) * request.PageSize).Take(request.PageSize).ToList(); var fishesToResponse = Mapper.Map <List <Aquarium>, List <AquariumForGetAllAquariumsResponse> >(fishes); var response = new GetAllAquariumsResponse(request, fishesToResponse, totalNumberOfItems, request.OrderBy ?? GetAquariumsOrderBy.IdAsc); return(new ServiceResponse <GetAllAquariumsResponse>(HttpStatusCode.OK, response)); }