コード例 #1
0
        public static List <IShippingService> FindAll(Store currentStore)
        {
            var result = Service.FindAll();

            // FedEx
            var fedexGlobal = new FedExGlobalServiceSettings
            {
                UserKey                  = currentStore.Settings.ShippingFedExKey,
                UserPassword             = currentStore.Settings.ShippingFedExPassword,
                AccountNumber            = currentStore.Settings.ShippingFedExAccountNumber,
                MeterNumber              = currentStore.Settings.ShippingFedExMeterNumber,
                DefaultDropOffType       = (DropOffType)currentStore.Settings.ShippingFedExDropOffType,
                DefaultPackaging         = (PackageType)currentStore.Settings.ShippingFedExDefaultPackaging,
                DiagnosticsMode          = currentStore.Settings.ShippingFedExDiagnostics,
                ForceResidentialRates    = currentStore.Settings.ShippingFedExForceResidentialRates,
                UseDevelopmentServiceUrl = currentStore.Settings.ShippingFedExUseDevelopmentServiceUrl
            };

            result.Add(new FedExProvider(fedexGlobal, Factory.CreateEventLogger()));

            // Load US Postal
            var uspostalGlobal = new USPostalServiceGlobalSettings
            {
                UserId          = currentStore.Settings.ShippingUSPostalUserId,
                DiagnosticsMode = currentStore.Settings.ShippingUSPostalDiagnostics
            };

            result.Add(new DomesticProvider(uspostalGlobal, Factory.CreateEventLogger()));
            result.Add(new InternationalProvider(uspostalGlobal, Factory.CreateEventLogger()));

            // Load UPS
            var upsglobal = new UPSServiceGlobalSettings
            {
                AccountNumber    = currentStore.Settings.ShippingUpsAccountNumber,
                LicenseNumber    = currentStore.Settings.ShippingUpsLicense,
                Username         = currentStore.Settings.ShippingUpsUsername,
                Password         = currentStore.Settings.ShippingUpsPassword,
                DefaultPackaging = (PackagingType)currentStore.Settings.ShippingUpsDefaultPackaging,
                DiagnosticsMode  = currentStore.Settings.ShippingUPSDiagnostics,
                ForceResidential = currentStore.Settings.ShippingUpsForceResidential,
                IgnoreDimensions = currentStore.Settings.ShippingUpsSkipDimensions,
                PickUpType       = (PickupType)currentStore.Settings.ShippingUpsPickupType
            };

            result.Add(new UPSService(upsglobal, Factory.CreateEventLogger()));

            return(result);
        }
コード例 #2
0
ファイル: SetupWizardTest3.cs プロジェクト: wncoder/core
        public void UPS_DomesticTestRate()
        {
            #region Arrange
            var shipment = _irepo.GetTestRate_UPS_DomesticShipment();
            var item     = _irepo.GetTestRate_UPS_DomesticShippableInfo();
            shipment.Items.Add(item);
            var globalSettings = new USPostalServiceGlobalSettings {
                UserId           = _application.CurrentStore.Settings.ShippingUSPostalUserId,
                DiagnosticsMode  = true,
                IgnoreDimensions = false
            };
            var settings = _irepo.GetTestRate_UPS_DomesticServiceSetting();

            var servicecodes = AvailableServices.FindById(GetShippingProviderId("US Postal Service - Domestic"), _application.CurrentStore).ListAllServiceCodes();

            var displayname = settings.ServiceCodeFilter.FirstOrDefault().DisplayName;

            var code = servicecodes.FirstOrDefault(x => x.DisplayName.Equals(displayname));

            settings.ServiceCodeFilter = new List <IServiceCode> {
                code
            };

            var provider = new DomesticProvider(globalSettings, new Web.Logging.TextLogger())
            {
                Settings = settings
            };
            #endregion

            //Act
            var rates = provider.RateShipment(shipment);

            //Assert
            if (rates == null)
            {
                Assert.AreEqual(1, 0);
            }
            else
            {
                Assert.AreEqual(25, rates.FirstOrDefault().EstimatedCost);
            }
        }
コード例 #3
0
        protected void btnGetRates_Click(object sender, EventArgs e)
        {
            MerchantTribe.Shipping.Shipment shipment = new MerchantTribe.Shipping.Shipment();
            shipment.DestinationAddress.PostalCode = this.ToZipField.Text.Trim();
            shipment.SourceAddress.PostalCode      = this.FromZipField.Text.Trim();

            // box
            MerchantTribe.Shipping.Shippable item = new MerchantTribe.Shipping.Shippable();
            decimal length = 0m;

            decimal.TryParse(this.LengthField.Text.Trim(), out length);
            decimal height = 0m;

            decimal.TryParse(this.HeightField.Text.Trim(), out height);
            decimal width = 0m;

            decimal.TryParse(this.WidthField.Text.Trim(), out width);
            decimal weightPounds = 0m;

            decimal.TryParse(this.WeightPoundsField.Text.Trim(), out weightPounds);
            decimal weightOunces = 0m;

            decimal.TryParse(this.WeightOuncesField.Text.Trim(), out weightOunces);
            item.BoxLength            = length;
            item.BoxHeight            = height;
            item.BoxWidth             = width;
            item.BoxLengthType        = MerchantTribe.Shipping.LengthType.Inches;
            item.BoxWeight            = weightPounds + MerchantTribe.Web.Conversions.OuncesToDecimalPounds(weightOunces);
            item.BoxWeightType        = MerchantTribe.Shipping.WeightType.Pounds;
            item.QuantityOfItemsInBox = 1;

            shipment.Items.Add(item);

            // Global Settings
            MerchantTribe.Shipping.USPostal.USPostalServiceGlobalSettings globalSettings = new USPostalServiceGlobalSettings();
            globalSettings.DiagnosticsMode  = true;
            globalSettings.IgnoreDimensions = false;

            // Settings
            MerchantTribe.Shipping.USPostal.USPostalServiceSettings settings = new USPostalServiceSettings();
            MerchantTribe.Shipping.ServiceCode code = new MerchantTribe.Shipping.ServiceCode();
            code.Code        = this.lstServiceTypes.SelectedItem.Value;
            code.DisplayName = this.lstServiceTypes.SelectedItem.Text;
            List <MerchantTribe.Shipping.IServiceCode> codes = new List <MerchantTribe.Shipping.IServiceCode>();

            codes.Add(code);
            settings.ServiceCodeFilter = codes;
            int temp = -1;

            int.TryParse(this.lstPackagingType.SelectedItem.Value, out temp);
            settings.PackageType = (MerchantTribe.Shipping.USPostal.v4.DomesticPackageType)temp;

            // Provider
            MerchantTribe.Web.Logging.TextLogger             logger   = new MerchantTribe.Web.Logging.TextLogger();
            MerchantTribe.Shipping.USPostal.DomesticProvider provider = new DomesticProvider(globalSettings, logger);
            provider.Settings = settings;

            List <MerchantTribe.Shipping.IShippingRate> rates = provider.RateShipment(shipment);

            this.litRates.Text = "<ul>";
            foreach (MerchantTribe.Shipping.IShippingRate rate in rates)
            {
                this.litRates.Text += "<li>" + rate.EstimatedCost.ToString("c") + " - " + rate.DisplayName + "</li>";
            }
            this.litRates.Text += "</ul>";

            this.litMessages.Text = "<ul>";
            foreach (MerchantTribe.Shipping.ShippingServiceMessage msg in provider.LatestMessages)
            {
                switch (msg.MessageType)
                {
                case MerchantTribe.Shipping.ShippingServiceMessageType.Diagnostics:
                    this.litMessages.Text += "<li>DIAGNOSTICS:";
                    break;

                case MerchantTribe.Shipping.ShippingServiceMessageType.Information:
                    this.litMessages.Text += "<li>INFO:";
                    break;

                case MerchantTribe.Shipping.ShippingServiceMessageType.Error:
                    this.litMessages.Text += "<li>ERROR:";
                    break;
                }
                this.litMessages.Text += System.Web.HttpUtility.HtmlEncode(msg.Description + " " + msg.Code) + "</li>";
            }
            this.litMessages.Text += "</ul>";


            this.litXml.Text = "";
            while (logger.Messages.Count > 0)
            {
                string tempXml = logger.Messages.Dequeue();
                tempXml           = tempXml.Replace("\n", "<br />");
                tempXml           = tempXml.Replace("\r", "<br />");
                tempXml           = tempXml.Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");
                this.litXml.Text += "<li>" + System.Web.HttpUtility.HtmlEncode(tempXml) + "</li>";
            }
        }
コード例 #4
0
        protected void btnGetRates_Click(object sender, EventArgs e)
        {
            pnlRates.Visible = true;

            var shipment = new Shipment
            {
                DestinationAddress = { PostalCode = ToZipField.Text.Trim() },
                SourceAddress      = { PostalCode = FromZipField.Text.Trim() }
            };

            // box
            var item = new Shippable();

            var length = 0m;

            decimal.TryParse(LengthField.Text.Trim(), out length);
            var height = 0m;

            decimal.TryParse(HeightField.Text.Trim(), out height);
            var width = 0m;

            decimal.TryParse(WidthField.Text.Trim(), out width);
            var weightPounds = 0m;

            decimal.TryParse(WeightPoundsField.Text.Trim(), out weightPounds);
            var weightOunces = 0m;

            decimal.TryParse(WeightOuncesField.Text.Trim(), out weightOunces);

            item.BoxLength            = length;
            item.BoxHeight            = height;
            item.BoxWidth             = width;
            item.BoxLengthType        = LengthType.Inches;
            item.BoxWeight            = weightPounds + Conversions.OuncesToDecimalPounds(weightOunces);
            item.BoxWeightType        = WeightType.Pounds;
            item.QuantityOfItemsInBox = 1;

            shipment.Items.Add(item);

            // Global Settings
            var globalSettings = new USPostalServiceGlobalSettings
            {
                UserId           = HccApp.CurrentStore.Settings.ShippingUSPostalUserId,
                DiagnosticsMode  = true,
                IgnoreDimensions = false
            };

            // Settings
            var settings = new USPostalServiceSettings();

            var code = new ServiceCode
            {
                Code        = lstServiceTypes.SelectedItem.Value,
                DisplayName = lstServiceTypes.SelectedItem.Text
            };

            var codes = new List <IServiceCode> {
                code
            };

            settings.ServiceCodeFilter = codes;

            var temp = -1;

            int.TryParse(lstPackagingType.SelectedItem.Value, out temp);

            settings.PackageType = (DomesticPackageType)temp;

            // Provider
            var logger   = new TextLogger();
            var provider = new DomesticProvider(globalSettings, logger)
            {
                Settings = settings
            };

            var rates = provider.RateShipment(shipment);

            var sbRates = new StringBuilder();

            sbRates.Append("<ul>");
            foreach (var rate in rates)
            {
                sbRates.Append("<li>");
                sbRates.Append(rate.EstimatedCost.ToString("c"));
                sbRates.Append(" - ");
                sbRates.Append(rate.DisplayName);
                sbRates.Append("</li>");
            }
            sbRates.Append("</ul>");

            litRates.Text = sbRates.ToString();

            var sbMessages = new StringBuilder();

            sbMessages.Append("<ul>");
            foreach (var msg in provider.LatestMessages)
            {
                sbMessages.Append("<li>");
                switch (msg.MessageType)
                {
                case ShippingServiceMessageType.Diagnostics:
                    sbMessages.Append(Localization.GetString("Diagnostics"));
                    break;

                case ShippingServiceMessageType.Information:
                    sbMessages.Append(Localization.GetString("Info"));
                    break;

                case ShippingServiceMessageType.Error:
                    sbMessages.Append(Localization.GetString("Error"));
                    break;
                }
                sbMessages.Append(":");

                sbMessages.Append(HttpUtility.HtmlEncode(string.Concat(msg.Description, " ", msg.Code)));
                sbMessages.Append("</li>");
            }
            sbMessages.Append("</ul>");

            litMessages.Text = sbMessages.ToString();

            litXml.Text = string.Empty;

            while (logger.Messages.Count > 0)
            {
                var tempXml = logger.Messages.Dequeue();
                tempXml      = tempXml.Replace("\n", "<br />");
                tempXml      = tempXml.Replace("\r", "<br />");
                tempXml      = tempXml.Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");
                litXml.Text += "<li>" + HttpUtility.HtmlEncode(tempXml) + "</li>";
            }
        }
コード例 #5
0
ファイル: AvailableServices.cs プロジェクト: wncoder/core
        public static List <IShippingService> FindAll(Store currentStore)
        {
            var result = Service.FindAll();

            // FedEx
            var fedexGlobal = new FedExGlobalServiceSettings
            {
                UserKey                  = currentStore.Settings.ShippingFedExKey,
                UserPassword             = currentStore.Settings.ShippingFedExPassword,
                AccountNumber            = currentStore.Settings.ShippingFedExAccountNumber,
                MeterNumber              = currentStore.Settings.ShippingFedExMeterNumber,
                DefaultDropOffType       = (DropOffType)currentStore.Settings.ShippingFedExDropOffType,
                DefaultPackaging         = (PackageType)currentStore.Settings.ShippingFedExDefaultPackaging,
                DiagnosticsMode          = currentStore.Settings.ShippingFedExDiagnostics,
                ForceResidentialRates    = currentStore.Settings.ShippingFedExForceResidentialRates,
                UseDevelopmentServiceUrl = currentStore.Settings.ShippingFedExUseDevelopmentServiceUrl
            };

            result.Add(new FedExProvider(fedexGlobal, Factory.CreateEventLogger()));

            // Load US Postal
            var uspostalGlobal = new USPostalServiceGlobalSettings
            {
                UserId          = currentStore.Settings.ShippingUSPostalUserId,
                DiagnosticsMode = currentStore.Settings.ShippingUSPostalDiagnostics
            };

            result.Add(new DomesticProvider(uspostalGlobal, Factory.CreateEventLogger()));
            result.Add(new InternationalProvider(uspostalGlobal, Factory.CreateEventLogger()));

            // Load UPS
            var upsglobal = new UPSServiceGlobalSettings
            {
                AccountNumber    = currentStore.Settings.ShippingUpsAccountNumber,
                LicenseNumber    = currentStore.Settings.ShippingUpsLicense,
                Username         = currentStore.Settings.ShippingUpsUsername,
                Password         = currentStore.Settings.ShippingUpsPassword,
                DefaultPackaging = (PackagingType)currentStore.Settings.ShippingUpsDefaultPackaging,
                DiagnosticsMode  = currentStore.Settings.ShippingUPSDiagnostics,
                ForceResidential = currentStore.Settings.ShippingUpsForceResidential,
                IgnoreDimensions = currentStore.Settings.ShippingUpsSkipDimensions,
                PickUpType       = (PickupType)currentStore.Settings.ShippingUpsPickupType
            };

            result.Add(new UPSService(upsglobal, Factory.CreateEventLogger()));


            // Load UPS Freight
            var upsFreightGlobal = new UPSFreightServiceGlobalSettings
            {
                AccountNumber     = currentStore.Settings.ShippingUpsAccountNumber,
                LicenseNumber     = currentStore.Settings.ShippingUpsLicense,
                Username          = currentStore.Settings.ShippingUpsUsername,
                Password          = currentStore.Settings.ShippingUpsPassword,
                DefaultPackaging  = (Hotcakes.Shipping.UpsFreight.PackingTypes)currentStore.Settings.ShippingUpsFreightDefaultPackaging,
                DiagnosticsMode   = currentStore.Settings.ShippingUPSFreightDiagnostics,
                ForceResidential  = currentStore.Settings.ShippingUpsFreightForceResidential,
                IgnoreDimensions  = currentStore.Settings.ShippingUpsFreightSkipDimensions,
                BillingOption     = (Hotcakes.Shipping.UpsFreight.BillingOption)currentStore.Settings.ShippingUpsFreightBillingOption,
                HandleOneUnitType = (currentStore.Settings.ShippingUpsFreightHandleOneUnitType != string.Empty ? (HandlineOneUnitType)Enum.Parse(typeof(HandlineOneUnitType), currentStore.Settings.ShippingUpsFreightHandleOneUnitType) : HandlineOneUnitType.CBY),
                FreightClass      = currentStore.Settings.ShippingUpsFreightFreightClass
            };

            result.Add(new UPSFreightService(upsFreightGlobal, Factory.CreateEventLogger()));
            return(result);
        }