public async Task <ServiceResponse <GetUserFishesResponse> > GetUserFishes(GetUserFishesRequest request) { bool isQueryIncluded = !string.IsNullOrWhiteSpace(request.Query); var dbQuery = Context.Fishes.Where(f => f.OwnerId == CurrentlyLoggedUser.Id); 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 <FishForGetUserFishesResponse> >(fishes); var response = new GetUserFishesResponse(request, fishesToResponse, totalNumberOfItems, request.OrderBy ?? GetFishesOrderBy.NameAsc); return(new ServiceResponse <GetUserFishesResponse>(HttpStatusCode.OK, response)); }
public async Task <IActionResult> GetUserFishes([FromQuery] GetUserFishesRequest request) { var response = await _fishService.GetUserFishes(request); return(SendResponse(response)); }