private static int GetFlight(FlightOptions opts) { if (!AMSTools.FileOK(opts.FileName)) { return(-1); } var t = GetFromToTime(opts.Today, opts.Yesterday, opts.Tomorrow, opts.From, opts.To); if (t == null) { return(-1); } double fromOffset = (t.Item1 - DateTime.Now).TotalDays; double toOffset = (t.Item2 - DateTime.Now).TotalDays; int start = Convert.ToInt32(Math.Floor(fromOffset)); int stop = Convert.ToInt32(Math.Ceiling(toOffset)); string result = @"<Flights xmlns=""http://www.sita.aero/ams6-xml-api-datatypes>"">"; for (int off = start; off <= stop; off++) { bool found = false; DateTime date = DateTime.Now.AddDays(off); using (AMSIntegrationServiceClient client = new AMSIntegrationServiceClient(AMSTools.GetWSBinding(), AMSTools.GetWSEndPoint())) { FlightId arr = AMSTools.GetFlightID(true, opts.Airline, opts.FlightNum, off); try { XmlElement res = client.GetFlight(Parameters.TOKEN, arr); if (!res.OuterXml.Contains("FLIGHT_NOT_FOUND")) { found = true; result += res.OuterXml; Console.WriteLine($"Arrival Flight {opts.Airline}{opts.FlightNum} found for {date}"); } } catch (Exception e) { Console.WriteLine(e.Message); } FlightId dep = AMSTools.GetFlightID(false, opts.Airline, opts.FlightNum, off); try { XmlElement res = client.GetFlight(Parameters.TOKEN, dep); if (!res.OuterXml.Contains("FLIGHT_NOT_FOUND")) { found = true; result += res.OuterXml; Console.WriteLine($"Departure Flight {opts.Airline}{opts.FlightNum} found for {date}"); } } catch (Exception e) { Console.WriteLine(e.Message); } } if (!found) { Console.WriteLine($"Flight {opts.Airline}{opts.FlightNum} not found for {date}"); } } result += "</Flights>"; if (opts.CSV) { //Output in CSV format AMSTools.Out(GetCSV(result, "Flight", BaseType.Flight, ".//ams:FlightState", opts.FlightNum, opts.Linked), opts.FileName); } else { //Output in XML format AMSTools.Out(AMSTools.PrintXML(result), opts.FileName); } return(1); }