public async Task <FlightRecordIndexModel> Handle(GetFilteredFlightsQuery request, CancellationToken cancellationToken) { InvoiceToFlightComaprer comparer = new InvoiceToFlightComaprer(); //int ActualPage = request.PaginationInfoViewModel.ActualPage; //switch (request.PaginationInfoViewModel.PageCommand) //{ // case PageCommand.MoveNext: // ActualPage = request.PaginationInfoViewModel.ActualPage + 1; // break; // case PageCommand.MovePrevious: // ActualPage = request.PaginationInfoViewModel.ActualPage - 1; // break; //} DateTime fromDate = request.flightRecordIndexView.FilterModel.FilterDateViewModel.FilterDateFrom; DateTime toDate = request.flightRecordIndexView.FilterModel.FilterDateViewModel.FilterDateTo; var clubId = request.flightRecordIndexView.FilterModel.ClubFilterApplied ?? 0; var aircraftId = request.flightRecordIndexView.FilterModel.AirplaneFilterApplied ?? 0; var pilotId = request.flightRecordIndexView.FilterModel.PilotFilterApplied ?? 0; List <int> aircraftIds = aircraftId == 0 ? _context.Set <Aircraft>().Select(i => i.Id).ToList() : new List <int>() { aircraftId }; List <int> pilotIds = pilotId == 0 ? _context.Set <Member>().Select(i => i.Id).ToList() : new List <int>() { pilotId }; var aircraftLogBook = from lb in _context.Set <AircraftLogBook>() join ac in _context.Set <Aircraft>() on lb.TaiNumber equals ac.TailNumber where aircraftIds.Contains(ac.Id) select lb; var club = _context.Set <Club>().Find(clubId); var flights1 = _context.Set <Flight>().ToList(); var flights = (_context.Set <Club>().Where(c => c.Id == clubId)).Select(a => a.Aircrafts).ToList(); //var filteredFlight = (from fl in _context.Set<Flight>() // join ar in _context.Set<Aircraft>() on fl.Aircraft.Id equals ar.Id // where fl.Pilot.Id == pilotId && fl.Date >= fromDate && fl.Date <= toDate // select fl).ToList(); //var filteredFlight = (from fl in _context.Set<Flight>().Include(x => x.Aircraft) // where ( fl.Date.Date >= fromDate.Date && fl.Date.Date <= toDate.Date && aircraftIds.Contains(fl.Aircraft.Id) && pilotIds.Contains(fl.Pilot.Id)) // select fl).ToList(); var filteredFlight = _context.Set <Flight>().Include(x => x.Aircraft).Where(fl => fl.Date.Date >= fromDate.Date && fl.Date.Date <= toDate.Date && aircraftIds.Contains(fl.Aircraft.Id) && pilotIds.Contains(fl.Pilot.Id)).Select(fl => fl).ToList(); int totalFlight = filteredFlight.Count(); request.flightRecordIndexView.PaginationInfo.TotalItems = filteredFlight.Count(); request.flightRecordIndexView.PaginationInfo.ActualPage = 1; request.flightRecordIndexView.PaginationInfo.TotalItems = totalFlight; request.flightRecordIndexView.PaginationInfo.TotalPages = int.Parse(Math.Ceiling((decimal)totalFlight / request.flightRecordIndexView.PaginationInfo.ItemsPerPage).ToString()); request.flightRecordIndexView.PaginationInfo.Next = request.flightRecordIndexView.PaginationInfo.ActualPage >= request.flightRecordIndexView.PaginationInfo.TotalPages ? "disabled" : ""; request.flightRecordIndexView.PaginationInfo.Previous = request.flightRecordIndexView.PaginationInfo.ActualPage == 1 ? "disabled" : ""; request.flightRecordIndexView.FlightRecords = _mapper.Map <List <Flight>, List <ClubFlightModel> >(filteredFlight); return(request.flightRecordIndexView); }
public async Task <FlightRecordIndexModel> Handle(GetAllFlightsQuery request, CancellationToken cancellationToken) { InvoiceToFlightComaprer comparer = new InvoiceToFlightComaprer(); FlightRecordIndexModel flightRecordIndexViewModel = new FlightRecordIndexModel(); var flights = _context.Set <Flight>().ToList(); ClubFlightModel clubFlightViewModel = new ClubFlightModel(); flightRecordIndexViewModel.FlightRecords = _mapper.Map <List <Flight>, List <ClubFlightModel> >(flights); int totalFlight = flights.Count(); flightRecordIndexViewModel.PaginationInfo.TotalItems = totalFlight; flightRecordIndexViewModel.PaginationInfo.ActualPage = 1; flightRecordIndexViewModel.PaginationInfo.TotalItems = totalFlight; flightRecordIndexViewModel.PaginationInfo.TotalPages = int.Parse(Math.Ceiling((decimal)totalFlight / flightRecordIndexViewModel.PaginationInfo.ItemsPerPage).ToString()); flightRecordIndexViewModel.PaginationInfo.Next = flightRecordIndexViewModel.PaginationInfo.ActualPage >= flightRecordIndexViewModel.PaginationInfo.TotalPages ? "disabled" : ""; flightRecordIndexViewModel.PaginationInfo.Previous = flightRecordIndexViewModel.PaginationInfo.ActualPage == 1 ? "disabled" : ""; return(flightRecordIndexViewModel); }