//saves a route private static XmlElement SaveRoute(XmlDocument xmlDoc, Route route) { XmlElement routeNode = xmlDoc.CreateElement("route"); routeNode.SetAttribute("id", route.Id); routeNode.SetAttribute("destination1", route.Destination1.Profile.IATACode); routeNode.SetAttribute("destination2", route.Destination2.Profile.IATACode); routeNode.SetAttribute("isbanned", route.Banned.ToString()); routeNode.SetAttribute("type", route.Type.ToString()); XmlElement routeStopoversNode = xmlDoc.CreateElement("stopovers"); foreach (StopoverRoute stopover in route.Stopovers) { XmlElement routeStopoverNode = xmlDoc.CreateElement("stopover"); routeStopoverNode.SetAttribute("airport", stopover.Stopover.Profile.ID); XmlElement stopoverLegsNode = xmlDoc.CreateElement("legs"); foreach (Route leg in stopover.Legs) { XmlElement stopoverLegNode = xmlDoc.CreateElement("leg"); stopoverLegNode.AppendChild(SaveRoute(xmlDoc, leg)); stopoverLegsNode.AppendChild(stopoverLegNode); } routeStopoverNode.AppendChild(stopoverLegsNode); routeStopoversNode.AppendChild(routeStopoverNode); } routeNode.AppendChild(routeStopoversNode); if (route.Type == Route.RouteType.Passenger || route.Type == Route.RouteType.Mixed) { XmlElement routeClassesNode = xmlDoc.CreateElement("routeclasses"); foreach (RouteAirlinerClass aClass in ((PassengerRoute)route).Classes) { XmlElement routeClassNode = xmlDoc.CreateElement("routeclass"); routeClassNode.SetAttribute("type", aClass.Type.ToString()); routeClassNode.SetAttribute("fareprice", aClass.FarePrice.ToString(new CultureInfo("de-DE", false))); foreach (RouteFacility facility in aClass.getFacilities()) routeClassNode.SetAttribute(facility.Type.ToString(), facility.Uid); // chs, 2011-18-10 added for saving of type of seating routeClassNode.SetAttribute("seating", aClass.Seating.ToString()); routeClassesNode.AppendChild(routeClassNode); } routeNode.AppendChild(routeClassesNode); } if (route.Type == Route.RouteType.Mixed || route.Type == Route.RouteType.Cargo) { XmlElement routeCargoNode = xmlDoc.CreateElement("cargo"); routeCargoNode.SetAttribute("priceperunit", ((CargoRoute)route).PricePerUnit.ToString(new CultureInfo("de-DE", false))); routeNode.AppendChild(routeCargoNode); } XmlElement timetableNode = xmlDoc.CreateElement("timetable"); foreach (RouteTimeTableEntry entry in route.TimeTable.Entries) { XmlElement ttEntryNode = xmlDoc.CreateElement("timetableentry"); ttEntryNode.SetAttribute("destination", entry.Destination.Airport.Profile.IATACode); ttEntryNode.SetAttribute("flightcode", entry.Destination.FlightCode); ttEntryNode.SetAttribute("day", entry.Day.ToString()); ttEntryNode.SetAttribute("time", entry.Time.ToString()); ttEntryNode.SetAttribute("airliner", entry.Airliner != null ? entry.Airliner.Airliner.ID : "-"); ttEntryNode.SetAttribute("id", entry.ID); if (entry.MainEntry != null) ttEntryNode.SetAttribute("mainentry", entry.MainEntry.ID); timetableNode.AppendChild(ttEntryNode); } routeNode.AppendChild(timetableNode); XmlElement routeInvoicesNode = xmlDoc.CreateElement("invoices"); foreach (MonthlyInvoice invoice in route.getInvoices().MonthlyInvoices) { XmlElement routeInvoiceNode = xmlDoc.CreateElement("invoice"); routeInvoiceNode.SetAttribute("type", invoice.Type.ToString()); routeInvoiceNode.SetAttribute("year", invoice.Year.ToString()); routeInvoiceNode.SetAttribute("month", invoice.Month.ToString()); routeInvoiceNode.SetAttribute("amount",invoice.Amount.ToString(new CultureInfo("de-DE", false))); routeInvoicesNode.AppendChild(routeInvoiceNode); } routeNode.AppendChild(routeInvoicesNode); return routeNode; }