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); }
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); } } }
private static int GetAircrafts(AircraftsOptions opts) { if (!AMSTools.FileOK(opts.FileName)) { return(-1); } AMSTools.Out(AMSTools.PrintXML(AMSTools.GetAircrafts()), opts.FileName); return(1); }
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); }
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); }
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); }
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); }
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); }