Exemple #1
0
        public Pagination <AnimalDto> GetAllAnimals(AnimalFilter filter = null, AnimalPaginationFilter pagination = null)
        {
            var filterQuery             = _mapper.Map <AnimalQuery>(filter);
            var paginationQuery         = _mapper.Map <AnimalPaginationQuery>(pagination);
            var skip                    = (paginationQuery.PageNumber - 1) * paginationQuery.PageSize;
            IQueryable <Animal> animals = _repository.GetAllQueryable()
                                          .Where(x => x.Status != AnimalStatus.Adopted && !x.IsHidden)
                                          .Include(animal => animal.Images)
                                          .Include(x => x.Category)
                                          .Include(x => x.Videos)
                                          .Include(x => x.Description)
                                          .Include(x => x.Breed)
                                          .OrderByDescending(x => x.IsNew).ThenByDescending(x => x.FoundDate);

            if (filter != null)
            {
                animals = _animalFilterService.AddAllFiltersQuery(filterQuery, animals);
            }
            var queryResult   = animals.ToList();
            var animalsResult = animals.Select(x => _mapper.Map <AnimalDto>(x))
                                .Skip(skip).Take(paginationQuery.PageSize).ToList();
            var paginationResponse = PaginationHelper.CreatePaginatedResponse(_uriService, paginationQuery,
                                                                              animalsResult, queryResult, "/Animal/GetAllAnimalsIncludeValues", filterQuery);

            return(paginationResponse);
        }
Exemple #2
0
 public ActionResult <Pagination <IEnumerable <AnimalDto> > > Get([FromQuery] AnimalFilter getAllAnimalPostFilter = null
                                                                  , [FromQuery] AnimalPaginationFilter pagination = null)
 {
     try
     {
         var animals = _animalService.GetAllAnimals(getAllAnimalPostFilter, pagination);
         return(Ok(animals));
     }
     catch (Exception ex)
     {
         //log error
         return(BadRequest(ex.Message));
     }
 }