Exemple #1
0
        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);
        }