public string ToString(string format, IFormatProvider formatProvider) { if (string.IsNullOrEmpty(format)) { format = "G"; } formatProvider = formatProvider ?? CultureInfo.CurrentCulture; switch (format) { case "G": string price = ""; if (Pounds > 0) { price += "£" + Pounds.ToString(formatProvider); } if (Shillings > 0) { price += (price.Length > 0 ? " " : "") + Shillings.ToString(formatProvider) + "s"; } if (Pence > 0) { price += (price.Length > 0 ? " " : "") + Pence.ToString(formatProvider) + "d"; } if (price.Length == 0) { price = "0"; } return(price); case "M": return(ModernEquivalent.ToString("N2", formatProvider)); } throw new FormatException(string.Format("Unsupported format '{0}'", format)); }
public void WriteToXml(ref XmlTextWriter xw) { SortDimensions(); xw.WriteStartElement("Package"); xw.WriteAttributeString("ID", Id); // Package Info xw.WriteElementString("Service", TranslateServiceCodeToString(Service)); if (Service == DomesticServiceType.FirstClass || Service == DomesticServiceType.FirstClassHoldForPickupCommercial) { xw.WriteElementString("FirstClassMailType", TranslateContainerCode(Container)); } xw.WriteElementString("ZipOrigination", ZipOrigination); xw.WriteElementString("ZipDestination", ZipDestination); xw.WriteElementString("Pounds", Pounds.ToString(CultureInfo.InvariantCulture)); xw.WriteElementString("Ounces", Math.Round(Ounces, 1).ToString(CultureInfo.InvariantCulture)); // Container and First Class Types if (Service == DomesticServiceType.FirstClass || Service == DomesticServiceType.FirstClassHoldForPickupCommercial) { xw.WriteElementString("Container", ""); } else { xw.WriteElementString("Container", TranslateContainerCode(Container)); } // Size if (DeterminePackageSize() == DomesticPackageSize.Large) { xw.WriteElementString("Size", "LARGE"); } else { xw.WriteElementString("Size", "REGULAR"); } // Dimesions here if (DeterminePackageSize() == DomesticPackageSize.Large) { if (HasDimensions()) { xw.WriteElementString("Width", Math.Round(Width, 1).ToString(CultureInfo.InvariantCulture)); xw.WriteElementString("Length", Math.Round(Length, 1).ToString(CultureInfo.InvariantCulture)); xw.WriteElementString("Height", Math.Round(Height, 1).ToString(CultureInfo.InvariantCulture)); } else { xw.WriteElementString("Width", Math.Round(3.0, 1).ToString(CultureInfo.InvariantCulture)); xw.WriteElementString("Length", Math.Round(6.0, 1).ToString(CultureInfo.InvariantCulture)); xw.WriteElementString("Height", Math.Round(0.25, 1).ToString(CultureInfo.InvariantCulture)); } if (Container == DomesticPackageType.NonRectangular || Container == DomesticPackageType.Variable || Container == DomesticPackageType.Ignore) { xw.WriteElementString("Girth", Math.Round(Girth(), 1).ToString(CultureInfo.InvariantCulture)); } } // Machinable if (IsMachinable() == DomesticMachinable.Yes) { xw.WriteElementString("Machinable", "true"); } if (IsMachinable() == DomesticMachinable.No) { xw.WriteElementString("Machinable", "false"); } if (DeclaredValue > 0) { xw.WriteElementString("Value", Math.Round(DeclaredValue, 2).ToString(CultureInfo.InvariantCulture)); } if (AmountToCollect > 0) { xw.WriteElementString("AmountToCollect", Math.Round(AmountToCollect, 2).ToString(CultureInfo.InvariantCulture)); } // Special Services if (SpecialServices.Count > 0) { xw.WriteStartElement("SpecialServices"); foreach (var s in SpecialServices) { xw.WriteElementString("SpecialService", ((int)s).ToString(CultureInfo.InvariantCulture)); } xw.WriteEndElement(); } // End Package xw.WriteEndElement(); }
public void WriteToXml(ref XmlTextWriter xw) { SortDimensions(); xw.WriteStartElement("Package"); xw.WriteAttributeString("ID", Id); // Weight Info xw.WriteElementString("Pounds", Pounds.ToString(CultureInfo.InvariantCulture)); xw.WriteElementString("Ounces", Math.Round(Ounces, 1).ToString(CultureInfo.InvariantCulture)); // Machinable if (IsMachinable() == InternationalMachinable.Yes) { xw.WriteElementString("Machinable", "true"); } if (IsMachinable() == InternationalMachinable.No) { xw.WriteElementString("Machinable", "false"); } // Mail Type xw.WriteElementString("MailType", TranslateMailType(MailType)); // Gxg xw.WriteStartElement("GXG"); xw.WriteElementString("POBoxFlag", GxgToPoBox ? "Y" : "N"); xw.WriteElementString("GiftFlag", GxgGift ? "Y" : "N"); xw.WriteEndElement(); // Value xw.WriteElementString("ValueOfContents", Math.Round(ValueOfContents, 2).ToString(CultureInfo.InvariantCulture)); // Country xw.WriteElementString("Country", DestinationCountry); // Determine Size var _size = DeterminePackageSize(); // Container if (_size == InternationalPackageSize.Large) { if (Container == InternationalContainerType.NonRectangular) { xw.WriteElementString("Container", "NONRECTANGULAR"); } else { xw.WriteElementString("Container", "RECTANGULAR"); } xw.WriteElementString("Size", "LARGE"); } else { xw.WriteElementString("Container", "RECTANGULAR"); xw.WriteElementString("Size", "REGULAR"); } // Dimesions here if (HasDimensions()) { xw.WriteElementString("Width", Math.Round(Width, 1).ToString(CultureInfo.InvariantCulture)); xw.WriteElementString("Length", Math.Round(Length, 1).ToString(CultureInfo.InvariantCulture)); xw.WriteElementString("Height", Math.Round(Height, 1).ToString(CultureInfo.InvariantCulture)); } else { xw.WriteElementString("Width", Math.Round(3.0, 1).ToString(CultureInfo.InvariantCulture)); xw.WriteElementString("Length", Math.Round(6.0, 1).ToString(CultureInfo.InvariantCulture)); xw.WriteElementString("Height", Math.Round(1.0, 1).ToString(CultureInfo.InvariantCulture)); } xw.WriteElementString("Girth", Math.Round(Girth(), 1).ToString(CultureInfo.InvariantCulture)); // Origin Zip xw.WriteElementString("OriginZip", ZipOrigination); // Commercial Flag xw.WriteElementString("CommercialFlag", CommercialRates ? "Y" : "N"); // Extra Services if (ExtraServices.Count > 0) { xw.WriteStartElement("ExtraServices"); foreach (var s in ExtraServices) { xw.WriteElementString("ExtraService", ((int)s).ToString()); } xw.WriteEndElement(); } // End Package xw.WriteEndElement(); }
public override string ToString() { return(Pounds.ToString()); }