public async Task <ServiceResponse <GetFishesFromAquariumResponse> > GetFishesFromAquarium(int aquariumId, GetFishesFromAquariumRequest request) { bool isQueryIncluded = !string.IsNullOrWhiteSpace(request.Query); var dbQuery = Context.Fishes.Where(f => f.IsAlive && f.AquariumId == aquariumId); if (isQueryIncluded) { string queryToLower = request.Query.ToLower(); dbQuery = dbQuery.Where(f => f.Name.ToLower().Contains(queryToLower)); } dbQuery = FishQuerySorter.GetFishesSortQuery(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 <Fish>, List <FishForGetFishesFromAquariumResponse> >(fishes); var response = new GetFishesFromAquariumResponse(request, fishesToResponse, totalNumberOfItems, request.OrderBy ?? GetFishesOrderBy.NameAsc); return(new ServiceResponse <GetFishesFromAquariumResponse>(HttpStatusCode.OK, response)); }
public async Task <IActionResult> GetFishesFromAquarium([FromRoute] int aquariumId, [FromQuery] GetFishesFromAquariumRequest request) { var response = await _fishService.GetFishesFromAquarium(aquariumId, request); return(SendResponse(response)); }