예제 #1
0
        public IActionResult EventList(Filter filter = null, int page = 0)
        {
            if (filter == null)
            {
                filter = new Filter();
            }
            IQueryable <Event> data = metaRepository.Get(filter.Type);

            if (!string.IsNullOrWhiteSpace(filter.Place))
            {
                data = data.Where(p => p.Place.Name.Contains(filter.Place));
            }
            if (filter.Date != null)
            {
                data = data.Where(p => p.Dates.Any(x => DateTime.Equals(x.DateTime.Date, filter.Date.Value.Date)));
            }
            List <EventListItemViewModel> events = data.OrderBy(e => e.Raiting)
                                                   .Skip(page * _pageSize)
                                                   .Take(_pageSize)
                                                   .ProjectTo <EventListItemViewModel>()
                                                   .ToList();

            ViewData["Filter"]     = filter;
            ViewData["Pagination"] = new Pagination(data.Count(), page, _pageSize);

            return(View("EventList", events));
        }