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)); }
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)); }