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));
        }