Example #1
0
        public IEnumerable <Item> GetAllItems(ItemFiltersDto filters)
        {
            var items = _context.Item.Include(i => i.Reviews).AsQueryable();

            if (filters.ScoreFrom.HasValue)
            {
                items = items.Where(i => i.Reviews.Average(r => r.Score) > filters.ScoreFrom.Value);
            }

            if (filters.ScoreTo.HasValue)
            {
                items = items.Where(i => i.Reviews.Average(r => r.Score) < filters.ScoreTo.Value);
            }

            if (filters.Name != null)
            {
                items = items.Where(i => i.Name == filters.Name);
            }

            return(items.ToList());
        }
        public ActionResult <IEnumerable <ItemReadDto> > GetAllItems([FromQuery] ItemFiltersDto filters)
        {
            var items = _repository.GetAllItems(filters);

            return(Ok(_mapper.Map <IEnumerable <ItemReadDto> >(items)));
        }