public async Task <IActionResult> Events(int?eventTypeId, int?eventCategoryId, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0) { var root = (IQueryable <Event>)_eventCatalogContext.Events; if (eventTypeId.HasValue) { root = root.Where(c => c.EventTypeId == eventTypeId); } if (eventCategoryId.HasValue) { root = root.Where(c => c.EventCategoryId == eventCategoryId); } var totalItems = await root .LongCountAsync(); var itemsOnPage = await root .OrderBy(c => c.Title) .Skip(pageSize * pageIndex) .Take(pageSize) .ToListAsync(); itemsOnPage = ChangeUrlPlaceHolder(itemsOnPage); var model = new PaginatedEventViewModel <Event>(pageIndex, pageSize, totalItems, itemsOnPage); return(Ok(model)); }
public async Task <IActionResult> EventsByFilters(int?eventTypeId, int?eventCategoryId, String eventDate, String eventCity, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0) { var root = (IQueryable <Event>)_eventCatalogContext.Events; if (eventTypeId.HasValue) { root = root.Where(c => c.EventTypeId == eventTypeId); } if (eventCategoryId.HasValue) { root = root.Where(c => c.EventCategoryId == eventCategoryId); } if (eventCity != "null" && eventCity != "All") { // var citystr = eventCity.Split(',')[0]; //var statestr = eventCity.Split(',')[1]; root = root.Where(c => c.City.ToLower() == eventCity.ToLower()); //root = root.Where(c => c.City == citystr && c.State == statestr); } /*** if(eventTitle != "null") * { * StringComparison comp = StringComparison.OrdinalIgnoreCase; * * root = root.Where(c => c.Title.Contains(eventTitle, comp) == true) * } ***/ if (eventDate != "null" && eventDate != "All Days") { root = FindingEventsByDate(root, eventDate); } var totalItems = await root .LongCountAsync(); var itemsOnPage = await root .OrderBy(c => c.Title) .Skip(pageSize * pageIndex) .Take(pageSize) .ToListAsync(); itemsOnPage = ChangeUrlPlaceHolder(itemsOnPage); var model = new PaginatedEventViewModel <Event>(pageIndex, pageSize, totalItems, itemsOnPage); return(Ok(model)); }
public ActionResult Index(int page = 1) { var events = _eg.GetAll(); var itemsPrPage = 4; events = events.Where(x => x.DateOfEvent > DateTime.Now).OrderBy(x => x.DateOfEvent).ToList(); var pagination = new PaginatedEventViewModel { ItemsPrPage = itemsPrPage, Page = page, Events = events.Skip((page - 1) * itemsPrPage).Take(itemsPrPage).ToList(), TotalEvents = events.Count }; return(View(pagination)); }
public async Task <IActionResult> Events([FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0) { var totalItems = await _eventCatalogContext.Events .LongCountAsync(); var itemsOnPage = await _eventCatalogContext.Events .OrderBy(c => c.Title) .Skip(pageSize * pageIndex) .Take(pageSize) .ToListAsync(); itemsOnPage = ChangeUrlPlaceHolder(itemsOnPage); var model = new PaginatedEventViewModel <Event> (pageIndex, pageSize, totalItems, itemsOnPage); return(Ok(model)); }
public async Task <IActionResult> City(string city, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0) { var totalItems = await _eventCatalogContext.EventCities .Where(c => c.CityName.StartsWith(city)) .LongCountAsync(); var itemsOnPage = await _eventCatalogContext.EventCities .Where(c => c.CityName.StartsWith(city)) .OrderBy(c => c.CityName) .Skip(pageSize * pageIndex) .Take(pageSize) .ToListAsync(); itemsOnPage = ChangeUrlPlaceHolder(itemsOnPage); var model = new PaginatedEventViewModel <EventCity> (pageIndex, pageSize, totalItems, itemsOnPage); return(Ok(model)); }
//this will be like: //type/1/topic/3 //the two names should much in{} and ? public async Task <IActionResult> Items( //nullable types int?eventTopicId, int?eventTypeId, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0 ) //create the entire query before it is excuted { var root = (IQueryable <CatalogEvent>)_eventContext.Events; if (eventTypeId.HasValue) { root = root.Where(c => c.EventTypeID == eventTypeId); } if (eventTopicId.HasValue) { root = root.Where(c => c.EventTopicID == eventTopicId); } var totalEvents = await root.LongCountAsync(); var eventsOnPage = await root .OrderBy(c => c.EventName) .Skip(pageIndex * pageSize) .Take(pageSize) .ToListAsync(); eventsOnPage = ChangeUrlPlaceholder(eventsOnPage); var model = new PaginatedEventViewModel <CatalogEvent> (pageIndex, pageSize, totalEvents, eventsOnPage); return(Ok(model)); }