public async Task <IActionResult> All()
        {
            var events = await this.db
                         .Events.Where(x => x.TotalTickets > 0)
                         .ToListAsync();

            var allEvents = this.mapper
                            .Map <List <Event>, IEnumerable <CreateEventViewModel> >(events);

            var viewModel = new CreateEventOrderViewModel()
            {
                CreateEventViewModels = allEvents,
                CreateOrderViewModel  = new CreateOrderViewModel()
            };

            return(View(viewModel));
        }
        public async Task <IActionResult> All(int?currentPage = 1)
        {
            var events = await this._dbContext.Events
                         .Where(x => x.TotalTickets > 0)
                         .ToListAsync();

            var allEvents  = this._mapper.Map <List <Event>, IEnumerable <CreateEventViewModel> >(events);
            var count      = events.Count();
            var size       = 10;
            var totalPages = (int)Math.Ceiling(decimal.Divide(count, size));

            if (currentPage <= 1)
            {
                currentPage = 1;
            }
            if (currentPage >= totalPages)
            {
                currentPage = totalPages;
            }

            var skip = (int)(currentPage - 1) * size;
            var take = size;

            allEvents = allEvents.Skip(skip).Take(take).ToList();

            var viewModel = new CreateEventOrderViewModel()
            {
                CreateEventViewModels = allEvents,
                CreateOrderViewModel  = new CreateOrderViewModel(),
                CurrentPage           = (int)currentPage,
                FirstPage             = 1,
                LastPage = totalPages
            };

            return(View(viewModel));
        }