Ejemplo n.º 1
0
        public async Task <IActionResult> Index()
        {
            AircraftIndexModel viewModel = new AircraftIndexModel
            {
                AircraftSearches = new List <AircraftSearch>(),
                Notification     = new AlertNotification()
            };

            return(View(viewModel));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Search(AircraftRequestModel aircraftRequestModel)
        {
            List <AircraftType> matchedAircraftTypes = string.IsNullOrEmpty(aircraftRequestModel.AircraftType)
                                                    ? await _context.AircraftTypes.ToListAsync()
                                                    : await _context.AircraftTypes.Where(act => act.Name.Contains(aircraftRequestModel.AircraftType)).ToListAsync();

            List <Guid> ListAircraftTypeId = matchedAircraftTypes.Select(act => act.Id).ToList();

            List <Aircraft> matchedAircraft = await _context.Aircrafts.Where(ac => ListAircraftTypeId.Contains(ac.AircraftTypeId)).ToListAsync();

            List <Guid> ListAirlineId = matchedAircraft.Select(ac => ac.AirlineId).ToList();


            List <Airline> matchedAirlines = string.IsNullOrEmpty(aircraftRequestModel.Airline)
                                            ? await _context.Airlines.Where(al => ListAirlineId.Contains(al.Id)).ToListAsync()
                                            : await _context.Airlines.Where(al => al.Name.Contains(aircraftRequestModel.Airline)).ToListAsync();

            List <AircraftSearch> aircraftSearches = new List <AircraftSearch>();

            foreach (var aircraft in matchedAircraft)
            {
                AircraftType aircraftTypeFound = matchedAircraftTypes.FirstOrDefault(act => act.Id == aircraft.AircraftTypeId);
                Airline      airlineFound      = matchedAirlines.FirstOrDefault(al => al.Id == aircraft.AirlineId);

                if (aircraftTypeFound != null && airlineFound != null)
                {
                    AircraftSearch newAircraftSearch = new AircraftSearch
                    {
                        AircraftType   = aircraftTypeFound,
                        CurrentAirline = airlineFound
                    };
                    aircraftSearches.Add(newAircraftSearch);
                }
            }

            AircraftIndexModel viewModel = new AircraftIndexModel()
            {
                AircraftSearches = aircraftSearches,
                Notification     = new AlertNotification()
            };

            return(View("Index", viewModel));
        }