Esempio n. 1
0
        private static int GetTowings(TowingsOptions 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);
            }

            string start = t.Item1.ToString("yyyy-MM-ddTHH:mm:ss");
            string end   = t.Item2.ToString("yyyy-MM-ddTHH:mm:ss");

            string uri = Parameters.AMS_REST_SERVICE_URI + "/" + Parameters.APT_CODE + "/Towings/" + start + "/" + end;

            if (opts.CSV)
            {
                AMSTools.Out(GetCSV(AMSTools.GetRestURI(uri).Result, "Towing", BaseType.Towing, null), opts.FileName);
            }
            else
            {
                AMSTools.Out(AMSTools.PrintXML(AMSTools.GetRestURI(uri).Result), opts.FileName);
            }
            return(1);
        }
Esempio n. 2
0
        private static void GetDowngrades(DownGradeOptions opts)
        {
            if (!AMSTools.FileOK(opts.FileName))
            {
                return;
            }

            var t = GetFromToTime(opts.Today, opts.Yesterday, opts.Tomorrow, opts.From, opts.To);

            if (t == null)
            {
                return;
            }

            using (AMSIntegrationServiceClient client = new AMSIntegrationServiceClient(AMSTools.GetWSBinding(), AMSTools.GetWSEndPoint())) {
                try {
                    XmlElement res = client.GetStandDowngrades(Parameters.TOKEN, t.Item1, t.Item2, Parameters.APT_CODE, AirportIdentifierType.IATACode);

                    //Output in XML format
                    AMSTools.Out(AMSTools.PrintXML(res.OuterXml), opts.FileName);
                } catch (Exception e) {
                    Console.WriteLine(e.Message);
                }
            }
        }
Esempio n. 3
0
 private static int GetAircrafts(AircraftsOptions opts)
 {
     if (!AMSTools.FileOK(opts.FileName))
     {
         return(-1);
     }
     AMSTools.Out(AMSTools.PrintXML(AMSTools.GetAircrafts()), opts.FileName);
     return(1);
 }
Esempio n. 4
0
        private static int GetCarousels(CarouselOptions opts)
        {
            if (!AMSTools.FileOK(opts.FileName))
            {
                return(-1);
            }
            try {
                string uri    = Parameters.AMS_REST_SERVICE_URI + $"{Parameters.APT_CODE}/Carousels";
                string result = AMSTools.GetRestURI(uri).Result;
                AMSTools.Out(AMSTools.PrintXML(result), opts.FileName);
            } catch (Exception e) {
                Console.WriteLine(e.Message);
            }

            return(1);
        }
Esempio n. 5
0
        private static int GetAirlines(AirlinesOptions opts)
        {
            if (!AMSTools.FileOK(opts.FileName))
            {
                return(-1);
            }

            if (opts.CSV)
            {
                AMSTools.Out(GetCSV(AMSTools.GetAirlines(), "Airline", BaseType.Airline, ".//ams:AirlineState"), opts.FileName);
            }
            else
            {
                AMSTools.Out(AMSTools.PrintXML(AMSTools.GetAirlines()), opts.FileName);
            }

            return(1);
        }
Esempio n. 6
0
        private static int GetStand(StandOptions opts)
        {
            if (!AMSTools.FileOK(opts.FileName))
            {
                return(-1);
            }
            try {
                string uri    = Parameters.AMS_REST_SERVICE_URI + $"{Parameters.APT_CODE}/Stands";
                string result = AMSTools.GetRestURI(uri).Result;

                XElement xmlRoot = XDocument.Parse(result).Root;
                XElement db      = (from n in xmlRoot.Descendants() where (n.Name == "FixedResource" && n.Elements("Name").FirstOrDefault().Value == opts.Stand) select n).FirstOrDefault <XElement>();

                if (db == null)
                {
                    Console.WriteLine($"Stand {opts.Stand} not found");
                    return(-1);
                }
                AMSTools.Out(AMSTools.PrintXML(db.ToString()), opts.FileName);
            } catch (Exception e) {
                Console.WriteLine(e.Message);
            }
            return(1);
        }
Esempio n. 7
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);
        }
Esempio n. 8
0
        private static int GetFlights(FlightsOptions 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);
            }

            using (AMSIntegrationServiceClient client = new AMSIntegrationServiceClient(AMSTools.GetWSBinding(), AMSTools.GetWSEndPoint())) {
                try {
                    XmlElement res = client.GetFlights(Parameters.TOKEN, t.Item1, t.Item2, Parameters.APT_CODE, AirportIdentifierType.IATACode);

                    if (!res.OuterXml.Contains("FLIGHT_NOT_FOUND"))
                    {
                        if (opts.Airline == null)
                        {
                            // If there is no specific airline specified

                            if (opts.CSV)
                            {
                                //Output in CSV format
                                AMSTools.Out(GetCSV(res.OuterXml, "Flight", BaseType.Flight, ".//ams:FlightState"), opts.FileName);
                            }
                            else
                            {
                                //Output in XML format
                                AMSTools.Out(AMSTools.PrintXML(res.OuterXml), opts.FileName);
                            }
                        }
                        else
                        {
                            // A specifc airline was requested
                            XmlNamespaceManager nsmgr = new XmlNamespaceManager(res.OwnerDocument.NameTable);
                            nsmgr.AddNamespace("ams", "http://www.sita.aero/ams6-xml-api-datatypes");

                            string result = @"<Flights xmlns=""http://www.sita.aero/ams6-xml-api-datatypes>"">";

                            foreach (XmlElement el in res.SelectNodes("//ams:Flights/ams:Flight", nsmgr))
                            {
                                {
                                    XmlNamespaceManager nsmgr2 = new XmlNamespaceManager(el.OwnerDocument.NameTable);
                                    nsmgr2.AddNamespace("ams", "http://www.sita.aero/ams6-xml-api-datatypes");

                                    XmlNode node = el.SelectSingleNode("//ams:FlightId/ams:AirlineDesignator[@codeContext='IATA']", nsmgr2);
                                    if (node?.InnerText == opts.Airline)
                                    {
                                        result += el.OuterXml;
                                    }
                                    else
                                    {
                                        Console.WriteLine($"Flight rejected. Airline Code = {node.InnerText}");
                                    }
                                }
                            }
                            result += "</Flights>";

                            if (opts.CSV)
                            {
                                //Output in CSV format
                                AMSTools.Out(GetCSV(result, "Flight", BaseType.Flight, ".//ams:FlightState"), opts.FileName);
                            }
                            else
                            {
                                //Output in XML format
                                AMSTools.Out(AMSTools.PrintXML(result), opts.FileName);
                            }
                        }
                    }
                } catch (Exception e) {
                    Console.WriteLine(e.Message);
                }
            }


            return(1);
        }