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); }
public Pagination <ArticleDto> GetAllArticles(ArticleFilter filters = null, ArticlePaginationFilter pagination = null) { var filterQuery = _mapper.Map <ArticleQuery>(filters); var paginationQuery = _mapper.Map <ArticlePaginationQuery>(pagination); var skip = (paginationQuery.PageNumber - 1) * paginationQuery.PageSize; var articles = GetArticlesWithIncludes().OrderByDescending(x => x.Created); var filteredArticles = _articleFilterService.AddAllFiltersQuery(filterQuery, articles).ToList(); var articlesResult = filteredArticles.Select(x => _mapper.Map <ArticleDto>(x)).Skip(skip).Take(paginationQuery.PageSize); var paginationResponse = PaginationHelper.CreatePaginatedResponse(_uriService, paginationQuery, articlesResult.ToList(), filteredArticles.ToList(), "/Article", filterQuery); return(paginationResponse); }