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)); }