Exemplo n.º 1
0
        public GetHorseAdListResults SearchAfter(SearchHorseDao searchQuery, int pageNumber)
        {
            var skipNumber = GetNumberToSkip(pageNumber);

            var searchPredicate      = searchQuery.GetSearchPredicate();
            var orderProperty        = searchQuery.GetOrderProperty();
            var isAscendingSortOrder = searchQuery.IsAscendingSortOrder();

            var horseAds = _ctx.HorseAds.AsQueryable().AsExpandable().Where(searchPredicate);

            var results = new GetHorseAdListResults()
            {
                TotalCount  = horseAds.Count(),
                HorseAdList = isAscendingSortOrder ? horseAds.AsEnumerable().OrderBy(x => orderProperty.GetValue(x, null)).Skip(skipNumber).Take(ApplicationConstants.AdsPerPage).ToList()
                                                   : horseAds.AsEnumerable().OrderByDescending(x => orderProperty.GetValue(x, null)).Skip(skipNumber).Take(ApplicationConstants.AdsPerPage).ToList()
            };

            return(results);
        }