public ActionResult AdminList(AdminListViewModel model)
        {
            model.Pager ??= new PagerViewModel();
            model.Pager.CurrentPage = model.Pager.CurrentPage <= 0 ? 1 : model.Pager.CurrentPage;
            model.Pager.PageSize    = model.Pager.PageSize <= 0 ? 10 : model.Pager.PageSize;

            List <FlightAdminListViewModel> items = new List <FlightAdminListViewModel>();

            foreach (var item in _context.Flights.Skip((model.Pager.CurrentPage - 1) * model.Pager.PageSize).Take(model.Pager.PageSize).ToList())
            {
                int[] availableSeats = GetAvailableTickets(item.Id);
                var   viewModel      = new FlightAdminListViewModel()
                {
                    Id            = item.Id,
                    LocationFrom  = item.LocationFrom,
                    LocationTo    = item.LocationTo,
                    DepartureTime = item.DepartureTime,
                    LandingTime   = item.LandingTime,
                    PlaneType     = item.PlaneType,
                    PlaneNumber   = item.PlaneNumber,
                    PilotName     = item.PilotName,
                    RegularSeats  = item.RegularSeats,
                    BusinessSeats = item.BusinessSeats
                };
                items.Add(viewModel);
            }


            model.Items            = items;
            model.Pager.PagesCount = (int)Math.Ceiling(_context.Flights.Count() / (double)model.Pager.PageSize);

            return(View(model));
        }
Esempio n. 2
0
        public IActionResult List(FlightAdminListViewModel model)
        {
            model.Pager              = model.Pager ?? new Models.PagerViewModel();
            model.Pager.CurrentPage  = model.Pager.CurrentPage <= 0 ? 1 : model.Pager.CurrentPage;
            model.Pager.ItemsPerPage = model.Pager.ItemsPerPage <= 0 ? 10 : model.Pager.ItemsPerPage;

            model.Filter = model.Filter ?? new Models.Filters.FlightsFilterViewModel();

            bool emptyPilotName = string.IsNullOrWhiteSpace(model.Filter.PilotName);


            ICollection <Flight> flights = _flightRepository.Items.Where(
                item => (emptyPilotName || item.PilotName.Contains(model.Filter.PilotName))).ToList();

            model.Pager.Pages = (int)Math.Ceiling((double)flights.Count() / model.Pager.ItemsPerPage);


            flights = flights.OrderBy(item => item.Id)
                      .Skip((model.Pager.CurrentPage - 1) * model.Pager.ItemsPerPage)
                      .Take(model.Pager.ItemsPerPage)
                      .ToList();

            model.Items = _mapper.Map <ICollection <FlightAdminViewModel> >(flights);
            return(View(model));
        }