Beispiel #1
0
        internal static PostageRatesRequest ConstructPostageRatesRequest(IPostageRatesRequest request)
        {
            PostageRatesRequest result = new PostageRatesRequest()
            {
                RequesterID = ToolsClass.GetRequesterID
            };
            CertifiedIntermediary certifiedIntermediary = new CertifiedIntermediary()
            {
                AccountID  = request.AccountID,
                PassPhrase = request.PassPhrase
            };

            result.CertifiedIntermediary = certifiedIntermediary;
            result.MailClass             = Parsers.ParseLabelType(request.MailClass);
            result.DateAdvance           = ConfigManager.Current.DefaultDateAdvance;
            result.Machinable            = ConfigManager.Current.DefaultMachinable;
            SpecialServices specialService = new SpecialServices()
            {
                DeliveryConfirmation    = ToolsClass.ParseBoolONOFF(request.DeliveryConfirmation),
                SignatureConfirmation   = ToolsClass.ParseBoolONOFF(request.SignatureConfirmation),
                CertifiedMail           = ConfigManager.Current.DefaultCertifiedMail,
                RestrictedDelivery      = ConfigManager.Current.DefaultRestrictedDelivery,
                ReturnReceipt           = ConfigManager.Current.DefaultReturnReceipt,
                ElectronicReturnReceipt = ConfigManager.Current.DefaultElectornicReturnReceipt,
                HoldForPickup           = ConfigManager.Current.DefaultHoldForPickup,
                OpenAndDistribute       = ConfigManager.Current.DefaultOpenAndDistribute,
                COD            = ConfigManager.Current.DefaultCOD,
                InsuredMail    = Parsers.ParseInsuredMail(request.InsuredMail),
                AdultSignature = ConfigManager.Current.DefaultAdultSignature,
                AdultSignatureRestrictedDelivery = ConfigManager.Current.DefaultAdultSignatureRestrictedDelivery
            };

            result.Services       = specialService;
            result.InsuredValue   = request.OrderValueForInsurance;
            result.FromPostalCode = request.FromPostalCode;
            result.ToPostalCode   = request.TargetAddress.PostalCode;
            result.ToCountry      = request.TargetAddress.Country;
            result.ToCountryCode  = request.TargetAddress.CountryCode;
            result.WeightOz       = request.PackageDetails.WeightOz;
            Dimensions dimension = new Dimensions()
            {
                Height = request.PackageDetails.Height,
                Length = request.PackageDetails.Length,
                Width  = request.PackageDetails.Width
            };

            result.MailpieceDimensions = dimension;
            return(result);
        }
Beispiel #2
0
        public void ParseNode(XmlNode n)
        {
            if (n != null)
            {
                var classId = n.Attributes["CLASSID"].Value;
                MailServiceClassId = classId;

                MailService = Xml.ParseInnerText(n, "MailService");
                Rate        = Xml.ParseDecimal(n, "Rate");

                SpecialServices.Clear();
                foreach (XmlNode n2 in n.SelectNodes("SpecialService"))
                {
                    var svc = new DomesticSpecialService(n2);
                    SpecialServices.Add(svc);
                }
            }
        }
        private void BtnGo_Click(object sender, EventArgs e)
        {
            try
            {
                this.Enabled       = false;
                this.Cursor        = Cursors.WaitCursor;
                this.UseWaitCursor = true;

                MyDHLAPI api = new MyDHLAPI(Common.CurrentCredentials["Username"]
                                            , Common.CurrentCredentials["Password"]
                                            , Common.CurrentRestBaseUrl);

                RateQueryRequest rqr = new RateQueryRequest();
                RateRequest      rr  = new RateRequest
                {
                    /*** Request Header ***/
                    Request = new Request()
                    {
                        ServiceHeader = new ServiceHeader()
                        {
                            ShippingSystemPlatform        = "MyDHL API Test App",
                            ShippingSystemPlatformVersion = Application.ProductVersion,
                            Plugin        = "MyDHL API C# Library",
                            PluginVersion = api.GetVersion()
                        }
                    }
                };

                RequestedShipment rs = new RequestedShipment
                {
                    DropOffType                 = (cmbRequestCourier.SelectedIndex == 0 ? Enums.DropOffType.RequestCourier : Enums.DropOffType.RegularPickup)
                    , DeclaredValue             = ntxtDeclaredValue.Value
                    , DeclaredValueCurrencyCode = txtDeclaredCurrency.Text.Trim()
                    , NextBusinessDay           = Enums.YesNo.Yes
                    , ShipTimestamp             = DateTime.Now
                    , UnitOfMeasurement         = (cmbUOM.SelectedIndex == 0 ? Enums.UnitOfMeasurement.SI : Enums.UnitOfMeasurement.SU)
                    , PaymentInfo               = (Enums.TermsOfTrade)cmbTermsOfTrade.SelectedItem
                    , RequestValueAddedServices = (cbxShowAllServices.Checked ? Enums.YesNo.Yes : Enums.YesNo.No)
                    , Content = (cmbDutiable.SelectedIndex == 0 ? Enums.ShipmentType.Documents : Enums.ShipmentType.NonDocuments)
                };
                MyDHLAPI_REST_Library.Objects.RateQuery.Ship    s  = new MyDHLAPI_REST_Library.Objects.RateQuery.Ship();
                MyDHLAPI_REST_Library.Objects.RateQuery.Address sa = new MyDHLAPI_REST_Library.Objects.RateQuery.Address
                {
                    City          = txtShipperCity.Text.Trim()
                    , PostalCode  = txtShipperPostalCode.Text.Trim()
                    , USSateCode  = txtShipperUSState.Text.Trim()
                    , CountryCode = txtShipperCountry.Text.Trim()
                };
                s.Shipper = sa;
                MyDHLAPI_REST_Library.Objects.RateQuery.Address ra = new MyDHLAPI_REST_Library.Objects.RateQuery.Address
                {
                    City          = txtConsigneeCity.Text.Trim()
                    , PostalCode  = txtConsigneePostalCode.Text.Trim()
                    , USSateCode  = txtConsigneeUSState.Text.Trim()
                    , CountryCode = txtConsigneeCountry.Text.Trim()
                };
                s.Recipient = ra;
                rs.Ship     = s;
                // 961187381
                Billing b = new Billing
                {
                    ShipperAccountNumber   = txtAccountShipper.Text.Trim()
                    , BillingAccountNumber = txtAccountBilling.Text.Trim()
                    , ShippingPaymentType  = (rbtnPayShipper.Checked ? Enums.PaymentTypes.Shipper : Enums.PaymentTypes.Receiver)
                };
                rs.Billing = b;
                Packages p = new Packages();
                List <RequestedPackages> rps = new List <RequestedPackages>
                {
                    new RequestedPackages
                    {
                        PieceNumber = 1
                        , Weight    = new Weight {
                            Value = ntxtWeight.Value
                        }
                        , Dimensions = new Dimensions
                        {
                            Height   = ntxtHeight.Value
                            , Width  = ntxtWidth.Value
                            , Length = ntxtLength.Value
                        }
                    }
                };
                p.RequestedPackages = rps;
                rs.Packages         = p;

                if ((Enums.TermsOfTrade)cmbTermsOfTrade.SelectedItem
                    == Enums.TermsOfTrade.DDP)
                {
                    SpecialServices sss = new SpecialServices
                    {
                        Service = new List <SpecialService>()
                    };
                    sss.Service.Add(new SpecialService("DD"));
                    rs.SpecialServices = sss;
                }

                rs.GetDetailedRateBreakdown = Enums.YesNo.Yes;

                rr.RequestedShipment = rs;
                rqr.RateRequest      = rr;

                RateQueryResponse result = null;
                try
                {
                    result = api.RateQuery(rqr);
                }
                catch (Exception ex)
                {
                    MessageBox.Show($"{ex.Message}", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    _lastJsonRequest  = api.LastRateQueryJSONRequest;
                    _lastJsonResponse = api.LastRateQueryJSONResponse;
                    return;
                }

                _lastJsonRequest  = api.LastRateQueryJSONRequest;
                _lastJsonResponse = api.LastRateQueryJSONResponse;

                tvResult.Nodes.Clear();

                if (null == result.Services)
                {
                    if (null != result.RateResponse.Provider)
                    {
                        if (1 == result.RateResponse.Provider.Count)
                        {
                            Provider provider = result.RateResponse.Provider.First();
                            if (provider.Notification.Any())
                            {
                                foreach (Notification notificaiton in provider.Notification)
                                {
                                    tvResult.Nodes.Add(notificaiton.Code, notificaiton.Message);
                                }
                            }
                        }
                    }
                    else
                    {
                        // We got no results back
                        tvResult.Nodes.Add("NONE", "--NONE--");
                    }
                }
                else
                {
                    TreeNode servicesOkToShow         = new TreeNode("Show on website");
                    TreeNode servicesNeedingAgreement = new TreeNode("Pre-agreement required");
                    foreach (Service service in result.Services)
                    {
                        TreeNode tn = new TreeNode($"{service.ProductCode}: {service.TotalNet.Currency} {service.TotalNet.Amount:#,##0.00}");
                        tn.Nodes.Add($"Transit time: {service.TotalTransitDays} day(s)");
                        if (null != service.Charges)
                        {
                            foreach (Charge charge in service.Charges.Charge)
                            {
                                TreeNode ctn = null;
                                if (string.IsNullOrEmpty(charge.ChargeCode))
                                {
                                    ctn = new TreeNode($"{charge.ChargeType}");
                                }
                                else
                                {
                                    ctn = new TreeNode($"({charge.ChargeCode}) {charge.ChargeType}");
                                }

                                if (!string.IsNullOrEmpty(service.Charges.Currency) &&
                                    null != charge.ChargeAmount)
                                {
                                    TreeNode cctn =
                                        new TreeNode($"{service.Charges.Currency} {charge.ChargeAmount:#,##0.00}");
                                    ctn.Nodes.Add(cctn);
                                }
                                tn.Nodes.Add(ctn);
                            }
                        }

                        tn.ExpandAll();

                        if (service.CustomerAgreementInd == Enums.YesNo.No)
                        {
                            servicesOkToShow.Nodes.Add(tn);
                        }
                        else
                        {
                            servicesNeedingAgreement.Nodes.Add(tn);
                        }
                    }

                    servicesOkToShow.ExpandAll();
                    servicesNeedingAgreement.ExpandAll();

                    tvResult.Nodes.Add(servicesOkToShow);
                    tvResult.Nodes.Add(servicesNeedingAgreement);
                }

                tvResult.Nodes[0].EnsureVisible();
            }
            finally
            {
                this.Enabled       = true;
                this.Cursor        = Cursors.Default;
                this.UseWaitCursor = false;
            }
        }
        public static LabelRequest ConstructLabelRequest(ILabelRequestRequest request)
        {
            DateTime     shipDateTime;
            LabelRequest labelRequest = new LabelRequest()
            {
                Test            = ToolsClass.ParseBoolYESNO(request.PrintSandbox),
                LabelType       = Parsers.ParseLabelType(request.LabelType),
                LabelSize       = Parsers.ParseLabelSize(request.LabelSize, request.LabelType),
                ImageFormat     = ConfigManager.Current.DefaultImageFormat,
                ImageResolution = "300",
                ImageRotation   = "None",
                RequesterID     = ToolsClass.GetRequesterID,
                AccountID       = request.AccountID,
                PassPhrase      = request.PassPhrase,
                MailClass       = Parsers.ParseMailClass(request.MailClass),
                DateAdvance     = ConfigManager.Current.DefaultDateAdvance,
                WeightOz        = request.PackageDetails.WeightOz
            };
            Dimensions dimension = new Dimensions()
            {
                Length = request.PackageDetails.Length,
                Width  = request.PackageDetails.Width,
                Height = request.PackageDetails.Height
            };

            labelRequest.MailpieceDimensions   = dimension;
            labelRequest.PackageTypeIndicator  = ConfigManager.Current.DefaultPackageTypeIndicator;
            labelRequest.Machinable            = ConfigManager.Current.DefaultMachinable;
            labelRequest.SignatureWaiver       = ConfigManager.Current.DefaultSignatureWaiver;
            labelRequest.NoWeekendDelivery     = ConfigManager.Current.DefaultNoWeekendDelivery;
            labelRequest.SundayHolidayDelivery = ConfigManager.Current.DefaultSundayHolidayDelivery;
            labelRequest.EntryFacility         = ConfigManager.Current.DefaultEntryFacility;
            labelRequest.POZipCode             = request.PoZipCode;
            bool includePostage = request.IncludePostage;

            labelRequest.IncludePostage    = includePostage.ToString().ToUpper();
            labelRequest.ReplyPostage      = ConfigManager.Current.DefaultReplayPostage;
            labelRequest.ShowReturnAddress = ConfigManager.Current.DefaultShowReturnAddress;
            includePostage = request.ValidateAddress;
            labelRequest.ValidateAddress = includePostage.ToString().ToUpper();
            SpecialServices specialService = new SpecialServices()
            {
                DeliveryConfirmation    = ToolsClass.ParseBoolONOFF(request.DeliveryConfirmation),
                SignatureConfirmation   = ToolsClass.ParseBoolONOFF(request.SignatureConfirmation),
                CertifiedMail           = ConfigManager.Current.DefaultCertifiedMail,
                RestrictedDelivery      = ConfigManager.Current.DefaultRestrictedDelivery,
                ReturnReceipt           = ConfigManager.Current.DefaultReturnReceipt,
                ElectronicReturnReceipt = ConfigManager.Current.DefaultElectornicReturnReceipt,
                HoldForPickup           = ConfigManager.Current.DefaultHoldForPickup,
                OpenAndDistribute       = ConfigManager.Current.DefaultOpenAndDistribute,
                COD            = ConfigManager.Current.DefaultCOD,
                InsuredMail    = Parsers.ParseInsuredMail(request.InsuredMail),
                AdultSignature = ConfigManager.Current.DefaultAdultSignature,
                AdultSignatureRestrictedDelivery = ConfigManager.Current.DefaultAdultSignatureRestrictedDelivery
            };

            labelRequest.Services             = specialService;
            labelRequest.InsuredValue         = request.OrderValueForInsurance;
            labelRequest.Value                = (float)Convert.ToDouble(request.OrderValueForInsurance);
            labelRequest.CostCenter           = 123;
            labelRequest.PartnerCustomerID    = request.AccountID;
            labelRequest.PartnerTransactionID = request.TransactionId.ToString();
            labelRequest.ReferenceID          = request.OrderId.ToString();
            labelRequest.RubberStamp1         = request.RubberStamp;
            ResponseOptions responseOption = new ResponseOptions()
            {
                PostagePrice = ConfigManager.Current.DefaultResponseOptions
            };

            labelRequest.ResponseOptions = responseOption;
            labelRequest.FromName        = request.SenderDetails.Name;
            labelRequest.FromCompany     = request.SenderDetails.Company;
            labelRequest.ReturnAddress1  = request.SenderDetails.Address1;
            labelRequest.ReturnAddress2  = request.SenderDetails.Address2;
            labelRequest.FromCity        = request.SenderDetails.City;
            labelRequest.FromState       = request.SenderDetails.State;
            labelRequest.FromPostalCode  = request.SenderDetails.PostalCode;
            labelRequest.FromCountry     = request.SenderDetails.Country;
            labelRequest.FromPhone       = request.SenderDetails.Phone;
            labelRequest.FromEMail       = request.SenderDetails.Email;
            labelRequest.ToName          = request.TargetAddress.Name;
            labelRequest.ToCompany       = request.TargetAddress.Company;
            labelRequest.ToAddress1      = request.TargetAddress.Address1;
            labelRequest.ToAddress2      = request.TargetAddress.Address2;
            labelRequest.ToCity          = request.TargetAddress.City;
            labelRequest.ToState         = request.TargetAddress.State;
            labelRequest.ToPostalCode    = request.TargetAddress.PostalCode;
            labelRequest.ToCountry       = request.TargetAddress.Country;
            labelRequest.ToCountryCode   = request.TargetAddress.CountryCode;
            labelRequest.ToPhone         = request.TargetAddress.Phone;
            labelRequest.ToEMail         = request.TargetAddress.Email;

            //labelRequest.LabelTemplate = "abc.ly";

            LabelRequest result = labelRequest;

            if (!request.IsInternationalOrder)
            {
                result.MailpieceShape     = null;
                result.LabelSubtype       = ConfigManager.Current.DefaultDomesticLabelSubType;
                result.IntegratedFormType = null;
            }
            else
            {
                result.MailpieceShape     = Parsers.ParseMailpieceShape(request.MailPieceShape);
                result.LabelSubtype       = ConfigManager.Current.DefaultInternationalLabelSubType;
                result.IntegratedFormType = PrintLabelsClass.GetIntegratedFormType(request.IsInternationalOrder, request.MailClass, request.MailPieceShape);
            }
            if ((request.PackageDetails.Items == null ? false : request.PackageDetails.Items.Count > 0))
            {
                if (request.IsInternationalOrder)
                {
                    result.CustomsCertify = ConfigManager.Current.DefaultCustomsCertify;
                    result.CustomsSigner  = request.CustomSigner;
                    CustomsInfo customsInfo = new CustomsInfo()
                    {
                        CertificateNumber = request.CustomCertificateNumber,
                        ContentsType      = ConfigManager.Current.DefaultMerchandise,
                        RestrictionType   = ConfigManager.Current.DefaultRestrictionType,
                        InvoiceNumber     = request.InvoiceNumber,
                        NonDeliveryOption = ConfigManager.Current.DefaultNonDeliveryOption
                    };
                    result.CustomsInfo = customsInfo;
                    List <CustomsItem> items = new List <CustomsItem>();
                    foreach (IPackageItem item in request.PackageDetails.Items)
                    {
                        CustomsItem cItem = new CustomsItem()
                        {
                            CountryOfOrigin = item.CustomCountry,
                            Description     = item.Description,
                            Quantity        = item.Quantity,
                            Value           = item.Value,
                            Weight          = item.WeightOz
                        };
                        items.Add(cItem);
                    }
                    result.CustomsInfo.CustomsItems = items.ToArray <CustomsItem>();
                }
            }
            try
            {
                shipDateTime    = request.ShipDateTime;
                result.ShipDate = shipDateTime.ToString("MM/dd/yyyy");
            }
            catch
            {
                shipDateTime    = DateTime.Now;
                result.ShipDate = shipDateTime.ToString("MM/dd/yyyy");
            }
            try
            {
                shipDateTime    = request.ShipDateTime;
                result.ShipTime = shipDateTime.ToString("hh:mm tt");
            }
            catch
            {
                shipDateTime    = DateTime.Now;
                result.ShipDate = shipDateTime.ToString("hh:mm tt");
            }
            return(result);
        }
Beispiel #5
0
        private void BtnGo_Click(object sender, EventArgs e)
        {
            try
            {
                this.Enabled       = false;
                this.Cursor        = Cursors.WaitCursor;
                this.UseWaitCursor = true;

                GloWS glows = new GloWS(Common.username, Common.password, (Common.IsProduction ? Common.restProductionBaseUrl : Common.restTestingBaseUrl));

                RateQueryRequest  rqr = new RateQueryRequest();
                RateRequest       rr  = new RateRequest();
                RequestedShipment rs  = new RequestedShipment
                {
                    DropOffType                 = (cmbRequestCourier.SelectedIndex == 0 ? Enums.DropOffType.RequestCourier : Enums.DropOffType.RegularPickup)
                    , DeclaredValue             = ntxtDeclaredValue.Value
                    , DeclaredValueCurrencyCode = txtDeclaredCurrency.Text.Trim()
                    , NextBusinessDay           = Enums.YesNo.Yes
                    , ShipTimestamp             = DateTime.Now
                    , UnitOfMeasurement         = (cmbUOM.SelectedIndex == 0 ? Enums.UnitOfMeasurement.SI : Enums.UnitOfMeasurement.SU)
                    , PaymentInfo               = (Enums.TermsOfTrade)cmbTermsOfTrade.SelectedItem
                    , RequestValueAddedServices = (cbxShowAllServices.Checked ? Enums.YesNo.Yes : Enums.YesNo.No)
                    , Content = (cmbDutiable.SelectedIndex == 0 ? Enums.ShipmentType.Documents : Enums.ShipmentType.NonDocuments)
                };
                GloWS_REST_Library.Objects.RateQuery.Ship s = new GloWS_REST_Library.Objects.RateQuery.Ship();
                Address sa = new Address
                {
                    City          = txtShipperCity.Text.Trim()
                    , PostalCode  = txtShipperPostalCode.Text.Trim()
                    , USSateCode  = txtShipperUSState.Text.Trim()
                    , CountryCode = txtShipperCountry.Text.Trim()
                };
                s.Shipper = sa;
                Address ra = new Address
                {
                    City          = txtConsigneeCity.Text.Trim()
                    , PostalCode  = txtConsigneePostalCode.Text.Trim()
                    , USSateCode  = txtConsigneeUSState.Text.Trim()
                    , CountryCode = txtConsigneeCountry.Text.Trim()
                };
                s.Recipient = ra;
                rs.Ship     = s;
                // 961187381
                Billing b = new Billing
                {
                    ShipperAccountNumber   = txtAccountShipper.Text.Trim()
                    , BillingAccountNumber = txtAccountBilling.Text.Trim()
                    , ShippingPaymentType  = (rbtnPayShipper.Checked ? Enums.PaymentTypes.Shipper : Enums.PaymentTypes.Receiver)
                };
                rs.Billing = b;
                Packages p = new Packages();
                List <RequestedPackages> rps = new List <RequestedPackages>
                {
                    new RequestedPackages
                    {
                        PieceNumber = 1
                        , Weight    = new Weight {
                            Value = ntxtWeight.Value
                        }
                        , Dimensions = new Dimensions
                        {
                            Height   = ntxtHeight.Value
                            , Width  = ntxtWidth.Value
                            , Length = ntxtLength.Value
                        }
                    }
                };
                p.RequestedPackages = rps;
                rs.Packages         = p;

                if ((Enums.TermsOfTrade)cmbTermsOfTrade.SelectedItem
                    == Enums.TermsOfTrade.DDP)
                {
                    SpecialServices sss = new SpecialServices
                    {
                        Service = new List <SpecialService>()
                    };
                    sss.Service.Add(new SpecialService("DD"));
                    rs.SpecialServices = sss;
                }

                rr.RequestedShipment = rs;
                rqr.RateRequest      = rr;

                RateQueryResponse result = glows.RateQuery(rqr);

                _lastJsonRequest  = glows.LastJSONRequest;
                _lastJsonResponse = glows.LastJSONResponse;

                tvResult.Nodes.Clear();

                if (null == result.Services)
                {
                    if (null != result.RateResponse.Provider)
                    {
                        if (1 == result.RateResponse.Provider.Count)
                        {
                            Provider provider = result.RateResponse.Provider.First();
                            if (provider.Notification.Any())
                            {
                                foreach (Notification notificaiton in provider.Notification)
                                {
                                    tvResult.Nodes.Add(notificaiton.Code, notificaiton.Message);
                                }
                            }
                        }
                    }
                    else
                    {
                        // We got no results back
                        tvResult.Nodes.Add("NONE", "--NONE--");
                    }
                }
                else
                {
                    foreach (Service service in result.Services)
                    {
                        TreeNode tn = new TreeNode($"{service.ProductCode}: {service.TotalNet.Currency} {service.TotalNet.Amount:#,##0.00}");
                        if (null != service.Charges)
                        {
                            foreach (Charge charge in service.Charges.Charge)
                            {
                                TreeNode ctn =
                                    new TreeNode(
                                        $"{charge.ChargeType}");
                                TreeNode cctn =
                                    new TreeNode($"{service.Charges.Currency} {charge.ChargeAmount:#,##0.00}");
                                ctn.Nodes.Add(cctn);
                                tn.Nodes.Add(ctn);
                            }
                        }

                        tn.ExpandAll();
                        tvResult.Nodes.Add(tn);
                    }
                }

                tvResult.Nodes[0].EnsureVisible();
            }
            finally
            {
                this.Enabled       = true;
                this.Cursor        = Cursors.Default;
                this.UseWaitCursor = false;
            }
        }
        internal static PostageRateRequest ConstructPostageRateRequest(IPostageRateRequest request)
        {
            DateTime           shipDateTime;
            PostageRateRequest postageRateRequest = new PostageRateRequest()
            {
                RequesterID = ToolsClass.GetRequesterID
            };
            CertifiedIntermediary certifiedIntermediary = new CertifiedIntermediary()
            {
                AccountID  = request.AccountID,
                PassPhrase = request.PassPhrase
            };

            postageRateRequest.CertifiedIntermediary = certifiedIntermediary;
            postageRateRequest.DateAdvance           = ConfigManager.Current.DefaultDateAdvance;
            postageRateRequest.Pricing  = Parsers.ParsePricing(request.Pricing);
            postageRateRequest.WeightOz = request.PackageDetails.WeightOz;
            Dimensions dimension = new Dimensions()
            {
                Height = request.PackageDetails.Height,
                Width  = request.PackageDetails.Width,
                Length = request.PackageDetails.Length
            };

            postageRateRequest.MailpieceDimensions   = dimension;
            postageRateRequest.AutomationRate        = ConfigManager.Current.DefaultAutomationRate;
            postageRateRequest.PackageTypeIndicator  = ConfigManager.Current.DefaultPackageTypeIndicator;
            postageRateRequest.Machinable            = ConfigManager.Current.DefaultMachinable;
            postageRateRequest.ServiceLevel          = ConfigManager.Current.DefaultServiceLevel;
            postageRateRequest.SundayHolidayDelivery = ConfigManager.Current.DefaultSundayHolidayDelivery;
            SpecialServices specialService = new SpecialServices()
            {
                DeliveryConfirmation    = ToolsClass.ParseBoolONOFF(request.DeliveryConfirmation),
                SignatureConfirmation   = ToolsClass.ParseBoolONOFF(request.SignatureConfirmation),
                CertifiedMail           = ConfigManager.Current.DefaultCertifiedMail,
                RestrictedDelivery      = ConfigManager.Current.DefaultRestrictedDelivery,
                ReturnReceipt           = ConfigManager.Current.DefaultReturnReceipt,
                ElectronicReturnReceipt = ConfigManager.Current.DefaultElectornicReturnReceipt,
                HoldForPickup           = ConfigManager.Current.DefaultHoldForPickup,
                OpenAndDistribute       = ConfigManager.Current.DefaultOpenAndDistribute,
                COD            = ConfigManager.Current.DefaultCOD,
                InsuredMail    = Parsers.ParseInsuredMail(request.InsuredMail),
                AdultSignature = ConfigManager.Current.DefaultAdultSignature,
                AdultSignatureRestrictedDelivery = ConfigManager.Current.DefaultAdultSignatureRestrictedDelivery
            };

            postageRateRequest.Services       = specialService;
            postageRateRequest.EntryFacility  = ConfigManager.Current.DefaultEntryFacility;
            postageRateRequest.Value          = request.OrderValueForInsurance;
            postageRateRequest.InsuredValue   = request.OrderValueForInsurance.ToString();
            postageRateRequest.FromPostalCode = request.FromPostalCode;
            postageRateRequest.ToPostalCode   = request.TargetAddress.PostalCode;
            postageRateRequest.ToCountry      = request.TargetAddress.Country;
            postageRateRequest.ToCountryCode  = request.TargetAddress.CountryCode;
            ResponseOptions responseOption = new ResponseOptions()
            {
                PostagePrice = ConfigManager.Current.DefaultResponseOptions
            };

            postageRateRequest.ResponseOptions = responseOption;
            postageRateRequest.MailClass       = Parsers.ParseMailClass(request.MailClass);
            PostageRateRequest result = postageRateRequest;

            try
            {
                shipDateTime    = request.ShipDateTime;
                result.ShipDate = shipDateTime.ToString("MM/dd/yyyy");
            }
            catch
            {
                shipDateTime    = DateTime.Now;
                result.ShipDate = shipDateTime.ToString("MM/dd/yyyy");
            }
            try
            {
                shipDateTime    = request.ShipDateTime;
                result.ShipTime = shipDateTime.ToString("hh:mm tt");
            }
            catch
            {
                shipDateTime    = DateTime.Now;
                result.ShipDate = shipDateTime.ToString("hh:mm tt");
            }
            return(result);
        }
Beispiel #7
0
        public string BuildXml()
        {
            string result = string.Empty;

            StringWriter  sw = new StringWriter(System.Globalization.CultureInfo.InvariantCulture);
            XmlTextWriter xw = new XmlTextWriter(sw);

            xw.Formatting  = Formatting.Indented;
            xw.Indentation = 2;

            xw.WriteStartDocument();

            //Preamble
            xw.WriteStartElement("FDXRateRequest");
            xw.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
            xw.WriteAttributeString("xsi:noNamespaceSchemaLocation", "FDXRateRequest.xsd");

            RequestHeader.WriteToXml(xw, "RequestHeader");
            xw.WriteElementString("ReturnShipmentIndicator", ReturnType.ToString());
            xw.WriteElementString("ShipDate", ShipDate.ToString("yyyy-MM-dd"));
            xw.WriteElementString("DropoffType", this.globals.DefaultDropOffType.ToString());
            xw.WriteElementString("Service", Service.ToString());
            xw.WriteElementString("Packaging", Packaging.ToString());
            xw.WriteElementString("WeightUnits", WeightUnits.ToString());
            xw.WriteElementString("Weight", _Weight.ToString("0.0"));
            xw.WriteElementString("ListRate", globals.UseListRates ? "1" : "0");

            OriginAddress.WriteToXml(xw, "OriginAddress");
            DestinationAddress.WriteToXml(xw, "DestinationAddress");

            xw.WriteStartElement("Payment");
            xw.WriteElementString("PayorType", "SENDER");
            xw.WriteEndElement();

            if (Packaging == PackageType.YOURPACKAGING)
            {
                Dimensions.WriteToXml(xw, "Dimensions");
            }

            xw.WriteStartElement("DeclaredValue");
            xw.WriteElementString("Value", _DeclaredValue.ToString("0.00"));
            xw.WriteElementString("CurrencyCode", "USD");
            xw.WriteEndElement();

            if (ContainsAlcohol)
            {
                xw.WriteElementString("Alcohol", "1");
            }
            SpecialServices.WriteToXml(xw, "SpecialServices");
            xw.WriteElementString("PackageCount", PackageCount.ToString());

            //_RequestContact.WriteToXml(xw, "Contact")
            //_RequestAddress.WriteToXml(xw, "Address")

            xw.WriteEndDocument();

            xw.Flush();
            xw.Close();

            result = sw.GetStringBuilder().ToString();

            return(result);
        }