Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
 public override string ToString()
 {
     return(Pounds.ToString());
 }