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