public void SaveCml(string path) { XElement xroads = new XElement("Roads"); XElement xparcels = new XElement("Parcels"); XElement xspots = new XElement("CitySpots"); XElement xlinears = new XElement("CityLinears"); XElement xregions = new XElement("CityRegions"); XElement xe = new XElement("TongjiCity", xroads, xparcels, xspots, xlinears, xregions); xe.Add(new XAttribute("Extents", Extents.ToString())); xe.Add(new XAttribute("CmlVersion", CurrentCmlVersion)); Roads.ForEach(x => xroads.Add(x.ToXElement())); Parcels.ForEach(x => xparcels.Add(x.ToXElement())); CitySpots.ForEach(x => xspots.Add(x.ToXElement())); CityLinears.ForEach(x => xlinears.Add(x.ToXElement())); CityRegions.ForEach(x => xregions.Add(x.ToXElement())); xe.Save(path); }
private void CalculateCityBasedCourierCost() { string FromCityRegion = string.Empty; string ToCityRegion = string.Empty; if (TotalSkids <= 0) { GetFinalCost(0); return; } XDocument CityRegions; string fName = Guid.NewGuid().ToString() + ".xml"; string sXML = Global.GetPostalCodesZones(); if (string.IsNullOrEmpty(sXML)) { CityRegions = XDocument.Load(System.Configuration.ConfigurationManager.AppSettings["cityregionfile"]); } else { CityRegions = XDocument.Parse(sXML); } var myCityRangeCost = from cityRange in CityRegions.Descendants("CityRegion") where ((string)cityRange.Attribute("From")).Equals(shipperCityRegion) && ((string)cityRange.Attribute("To")).Equals(consigneeCityRegion) select cityRange; if (myCityRangeCost == null || myCityRangeCost.Count() == 0) { myCityRangeCost = from cityRange in CityRegions.Descendants("CityRegion") where ((string)cityRange.Attribute("From")).Equals(shipperCityRegion) && ((string)cityRange.Attribute("To")).Equals(shipperCityRegion) select cityRange; } if (myCityRangeCost == null || myCityRangeCost.Count() == 0) { myCityRangeCost = from cityRange in CityRegions.Descendants("CityRegion") where ((string)cityRange.Attribute("From")).Equals(consigneeCityRegion) && ((string)cityRange.Attribute("To")).Equals(consigneeCityRegion) select cityRange; } if (myCityRangeCost == null || myCityRangeCost.Count() == 0) { OrderCost = 0; GetFinalCost(OrderCost); return; } if (ServiceType.Equals(DeliverySerrviceType.SMD.ToString())) { OrderCost = decimal.Parse(myCityRangeCost.Elements("SMD").First().Value.ToString()); } else if (ServiceType.Equals(DeliverySerrviceType.RSH.ToString())) { OrderCost = decimal.Parse(myCityRangeCost.Elements("Rush").First().Value.ToString()); } else if (ServiceType.Equals(DeliverySerrviceType.DIR.ToString())) { OrderCost = decimal.Parse(myCityRangeCost.Elements("DIR").First().Value.ToString()); } else if (ServiceType.Equals(DeliverySerrviceType.ON.ToString())) { OrderCost = decimal.Parse(myCityRangeCost.Elements("ON").First().Value.ToString()); } else if (ServiceType.Equals(DeliverySerrviceType.ON1.ToString()) || ServiceType.Equals(DeliverySerrviceType.ON2.ToString()) || ServiceType.Equals(DeliverySerrviceType.ON3.ToString()) || ServiceType.Equals(DeliverySerrviceType.AFT.ToString())) { string depService = string.Empty; string depservoperator = string.Empty; decimal depsevChrg = 0; XDocument specialService = XDocument.Load("Administration\\SpecialServiceCharges.xml"); var mySPServiceCost = from spservChrg in specialService.Descendants("service") where ((string)spservChrg.Attribute("type")).Equals(ServiceType.ToUpper()) select spservChrg; foreach (var item in mySPServiceCost) { depService = ((XElement)item).Attribute("dependent").Value.ToString(); depservoperator = ((XElement)item).Attribute("opration").Value.ToString(); depsevChrg = decimal.Parse(((XElement)item).Attribute("addCharg").Value.ToString()); } OrderCost = decimal.Parse(myCityRangeCost.Elements(depService).First().Value.ToString()); if (depservoperator.Equals("+")) { OrderCost = OrderCost + depsevChrg; } else if (depservoperator.Equals("-")) { OrderCost = OrderCost - depsevChrg; } else if (depservoperator.Equals("*")) { OrderCost = OrderCost * depsevChrg; } } OrderCost = OrderCost * TotalSkids; //carCharges = 0; //if (carChargesFlag) //{ // if (ToZone.Equals("11") || FromZone.Equals("11")) // { // OrderCost = OrderCost + dbcarCharges; // carCharges = dbcarCharges; // } //} //vanCharges = 0; //if (vanChargesFlag) //{ // OrderCost = OrderCost + dbvanCharges; // vanCharges = dbvanCharges; //} //if ((wait - WaitChargeFreeLimit) > 0) //{ // waitCharges = (wait - WaitChargeFreeLimit) * WaitChargeUnit; // OrderCost = waitCharges; //} //if ((weight - WeightChargeFreeLimit > 0)) //{ // weightCharges = (weight - WeightChargeFreeLimit) * WeightChargeUnit; // OrderCost = OrderCost + weightCharges; //} //OrderCost = OrderCost + loadUnloadCharges; GetFinalCost(OrderCost); }