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));
        }
Example #3
0
        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));
        }
Example #6
0
        //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));
        }