internal static List <FlightRoute> GetRouteInformation() { var routes = new List <FlightRoute>(); var provider1Data = new FlightDataProvider().GetFlightRouteFromFile("provider1.txt", ',', "M/d/yyyy H:mm:ss"); var provider2Data = new FlightDataProvider().GetFlightRouteFromFile("provider2.txt", ',', "M-d-yyyy H:mm:ss"); var provider3Data = new FlightDataProvider().GetFlightRouteFromFile("provider3.txt", '|', "M/d/yyyy H:mm:ss"); routes.AddRange(provider1Data); routes.AddRange(provider2Data); routes.AddRange(provider3Data); routes = GetDistinctRoutesWithLowestFare(routes).OrderBy(rR => rR.Rate.Value).ThenBy(rR => rR.DepartureTime).ToList(); return(routes); }
static void Main(string[] args) { _validate(args); var origin = args[2]; var destination = args[4]; var providerRoutes = FlightDataProvider.GetRouteInformation(); var requiredRoutes = providerRoutes.Where(r => r.Origin.Equals(origin) && r.Destination.Equals(destination)).ToList(); if (requiredRoutes == null || requiredRoutes.Count == 0) { Console.WriteLine("No Flights found for this route"); } else { foreach (var route in requiredRoutes) { Console.WriteLine($"{route.Origin} --> {route.Destination} ({route.DepartureTime} --> {route.DestinationTime}) - ${route.Rate.Value}"); } } }