static void Main(string[] args) { // Get Flights var flightBuilder = new FlightBuilder(); var flightList = new ResultSet(flightBuilder.GetFlights()); // Display List of Flights - not normally needed, for comparison with Filtered list Console.WriteLine("~ Initial Flight List ~"); flightList.WriteToConsole(); // Could ask User for filters like Departure Date here // Build Filters var filterBuilder = new FilterBuilder(); // Was intending to use a new prototype interface to clone the Basic default // filter but ran out of time // Filter Flights flightList.ApplyFilters(filterBuilder.GetFilterSet("Basic")); // Display Final List of Flights Console.WriteLine("~ Filter Results ~"); flightList.WriteToConsole(); Console.WriteLine("Press any key to exit"); Console.ReadLine(); }
public void Check_FlightHasValidDates() { FlightProvider flightBuilder = new FlightBuilder(); IEnumerable <Flight> flights = flightBuilder.GetFlights(FlightFilters.IsValid); Assert.DoesNotContain(flights, (f => f.Segments.Any(seg => seg.DepartureDate > seg.ArrivalDate))); }
public void Check_IsCurrentFlight() { FlightProvider flightBuilder = new FlightBuilder(); IEnumerable <Flight> flights = flightBuilder.GetFlights(FlightFilters.IsCurrent); Assert.DoesNotContain(flights, (f => f.Segments.Any(seg => seg.DepartureDate < DateTime.Now))); }
public void Check_IsGroundTimeLessThan2HoursFlight() { FlightProvider flightBuilder = new FlightBuilder(); IEnumerable <Flight> flights = flightBuilder.GetFlights(FlightFilters.IsGroundTimeLessThan2Hours); Assert.DoesNotContain(flights, FlightFilters.HasOverlappingSegments); Assert.DoesNotContain(flights, (flight => flight.GetTotalTravelTime().Subtract(flight.GetFlightTime()) > TimeSpan.FromHours(2))); }
static void Main(string[] args) { FlightBuilder fb = new FlightBuilder(); IList <Flight> flights = fb.GetFlights(); PrintFlights(flights); DepartBeforeCurrentDateTime(DateTime.Now, flights); SegmentsWithArrivalEarlierThanDepartureDate(flights); DepartureOver2HoursAfterArrival(flights); }
public void Check_FlightSegmentsAreOrdered() { FlightProvider flightBuilder = new FlightBuilder(); IEnumerable <Flight> flights = flightBuilder.GetFlights(); foreach (Flight f in flights) { for (int i = 1; i < f.Segments.Count; i++) { Assert.False(f.Segments[i].DepartureDate < f.Segments[i - 1].DepartureDate, "Unordered Segments found in flights"); } } }
private void button2_Click(object sender, EventArgs e) { FlightBuilder fb = new FlightBuilder(); var flights = fb.GetFlights(); //Have a segment with an arrival date before the departure date. var arrivalBefore = flights .SelectMany(s => s.Segments .Where(i => DateTime.Compare(i.ArrivalDate, i.DepartureDate) < 0)); foreach (var f in arrivalBefore) { Console.WriteLine("Arrival Date: " + f.ArrivalDate.ToString() + " departure date: " + f.DepartureDate.ToString()); } FlightGridView.DataSource = arrivalBefore.ToList(); }
private void button3_Click(object sender, EventArgs e) { FlightBuilder fb = new FlightBuilder(); var flights = fb.GetFlights(); //3.Spend more than 2 hours on the ground. i.e those with a total gap of over two hours between the //arrival date of one segment and the departure date of the next. var gapGround = flights .Where(s => (s.Segments.Count >= 2)) .Where(FilterFlights); foreach (var f in gapGround) { //Console.WriteLine("Arrival Date: " + f.Segments.ToString() + " departure date: " + f.Segments.ToString()); } FlightGridView.DataSource = gapGround.SelectMany(s => s.Segments).ToList(); }
private void button1_Click(object sender, EventArgs e) { FlightBuilder fb = new FlightBuilder(); var flights = fb.GetFlights(); //Depart before the current date/time. var departBefore = flights .SelectMany(s => s.Segments .Where(i => DateTime.Compare(i.DepartureDate, DateTime.Now) < 0)); foreach (var f in departBefore) { Console.WriteLine("Arrival Date: " + f.ArrivalDate.ToString() + " departure date: " + f.DepartureDate.ToString()); } FlightGridView.DataSource = departBefore.ToList(); }
public void Check_FlightSegmentsAreOrderedForced() { FlightProvider flightBuilder = new FlightBuilder(); flightBuilder.ShouldOrderSegments = false; IEnumerable <Flight> flights = flightBuilder.GetFlights(); bool ordered = true; foreach (Flight f in flights) { for (int i = 1; i < f.Segments.Count; i++) { if (f.Segments[i].DepartureDate < f.Segments[i - 1].DepartureDate) { ordered = false; break; } } } Assert.True(ordered, "Unordered Segments have been reordered in flights"); }
public IList <Flight> GetFlights() { FlightBuilder fb = new FlightBuilder(); return(fb.GetFlights()); }
private static IList <Flight> GetAllFlights(FlightBuilder flightBuilder) { return(flightBuilder.GetFlights()); }