public IActionResult Filter(AllReservationsViewModel model)
 {
     ReservationsFilteringAndPaging.ClearFilter();
     ReservationsFilteringAndPaging.FilterType = model.FilterType;
     ReservationsFilteringAndPaging.Filter     = model.Filter;
     return(View("AllReservations", GetAllReservations()));
 }
        public AllReservationsViewModel GetAllReservations(bool hasBeenRedirected = false)
        {
            if (hasBeenRedirected)
            {
                ReservationsFilteringAndPaging.Clear();
            }

            var allReservations = this.context.Reservations.ToList();
            List <ReservationViewModel> reservations = new List <ReservationViewModel>();

            if (ReservationsFilteringAndPaging.FilterType != ReservationFilterType.None)
            {
                string filter = ReservationsFilteringAndPaging.Filter;
                switch (ReservationsFilteringAndPaging.FilterType)
                {
                case ReservationFilterType.Email:
                    allReservations = allReservations.Where(reservation => reservation.Email.Contains(ReservationsFilteringAndPaging.Filter)).ToList();
                    break;
                }
            }

            var pageReservations = allReservations
                                   .Skip((ReservationsFilteringAndPaging.Pager.CurrentPage - 1) * ReservationsFilteringAndPaging.Pager.PageSize)
                                   .Take(ReservationsFilteringAndPaging.Pager.PageSize).ToList();

            ReservationViewModel curReserv = new ReservationViewModel();


            foreach (var reservation in pageReservations)
            {
                curReserv.ReservationId    = reservation.Id;
                curReserv.ReservedFlight   = reservation.Flight;
                curReserv.ReservationEmail = reservation.Email;
                curReserv.AllPassengers    = reservation.Passengers;
                curReserv.Confirmed        = reservation.IsConfirmed;

                reservations.Add(curReserv);
                curReserv = new ReservationViewModel();
            }

            AllReservationsViewModel model = new AllReservationsViewModel();

            model.AllReservations = reservations;

            ReservationsFilteringAndPaging.Pager.PagesCount = (int)Math.Ceiling(allReservations.Count() / (double)ReservationsFilteringAndPaging.Pager.PageSize);
            return(model);
        }
 public IActionResult ClearFilter()
 {
     ReservationsFilteringAndPaging.ClearFilter();
     return(View("AllReservations", GetAllReservations()));
 }