Example #1
0
 public IEnumerable <LotDto> GetAllLotsWithUsers(LotsFilterCriteria criteria)
 {
     if (criteria.Category == 0) // Skip default;
     {
         criteria.Category = null;
     }
     return(_lotRepository.GetAllLotsWithUsers(criteria).ToDto());
 }
Example #2
0
        private IQueryable <Lot> GetLots(LotsFilterCriteria criteria)
        {
            var lots = FilterByCriteria(criteria);

            if (criteria.Page != 0)
            {
                return(lots.Skip((criteria.Page - 1) * criteria.PageSize).Take(criteria.PageSize));
            }
            return(lots);
        }
Example #3
0
        public IActionResult Lots(int?category, string title, int page = 1, bool?active = null)
        {
            int pageSize = 4;
            var criteria = new LotsFilterCriteria()
            {
                Page = page, Category = category, Title = title, PageSize = pageSize, Active = active, UserId = UserId
            };
            var lots  = _lotsService.GetAllLots(criteria).ToVm();
            var model = new LotsViewModel()
            {
                Lots       = lots,
                Pagination = new PageViewModel(_lotsService.GetLotsCount(criteria), page, pageSize),
                Filter     = new FilterViewModel(GetCategories(), title, category, active)
            };

            return(View(model));
        }
Example #4
0
        private IQueryable <Lot> FilterByCriteria(LotsFilterCriteria criteria)
        {
            var lots = _context.Lots.AsQueryable();

            if (!string.IsNullOrEmpty(criteria.Title))
            {
                lots = lots.Where(x => x.Name.Contains(criteria.Title));
            }
            if (criteria.Category.HasValue)
            {
                lots = lots.Where(x => x.CategoryId == criteria.Category);
            }
            if (criteria.Active.HasValue)
            {
                lots = criteria.Active.Value ? lots.Where(x => x.ExpirationTime > DateTime.Now) : lots.Where(x => x.ExpirationTime < DateTime.Now);
            }
            if (criteria.UserId.HasValue)
            {
                lots = lots.Where(x => x.UserId == criteria.UserId);
            }
            return(lots);
        }
Example #5
0
 public int GetLotsCount(LotsFilterCriteria criteria)
 {
     return(_lotRepository.GetLotsCount(criteria));
 }
Example #6
0
 public int GetLotsCount(LotsFilterCriteria criteria)
 {
     return(FilterByCriteria(criteria).Count());
 }
Example #7
0
 public IEnumerable <Lot> GetAllLotsWithUsers(LotsFilterCriteria criteria)
 {
     return(GetLots(criteria).Include(x => x.User));
 }
Example #8
0
 public IEnumerable <Lot> GetAllLots(LotsFilterCriteria criteria) => GetLots(criteria);