Пример #1
0
        /// <summary>
        /// Create package details
        /// </summary>
        /// <param name="width">Width</param>
        /// <param name="length">Length</param>
        /// <param name="height">Height</param>
        /// <param name="weight">Weight</param>
        /// <param name="insuranceAmount">Insurance amount</param>
        /// <returns>Package details</returns>
        private UPSRate.PackageType CreatePackage(decimal width, decimal length, decimal height, decimal weight, decimal insuranceAmount)
        {
            //set package details
            var package = new UPSRate.PackageType
            {
                PackagingType = new UPSRate.CodeDescriptionType
                {
                    Code = GetUpsCode(_upsSettings.PackagingType)
                }
            };

            //set dimensions and weight details
            if (!_upsSettings.PassDimensions)
            {
                width = length = height = 0;
            }
            package.Dimensions = new UPSRate.DimensionsType
            {
                Width             = width.ToString(),
                Length            = length.ToString(),
                Height            = height.ToString(),
                UnitOfMeasurement = new UPSRate.CodeDescriptionType {
                    Code = INCHES_DIMENSION_CODE
                }
            };
            package.PackageWeight = new UPSRate.PackageWeightType
            {
                Weight            = weight.ToString(),
                UnitOfMeasurement = new UPSRate.CodeDescriptionType {
                    Code = LBS_WEIGHT_CODE
                },
            };

            //set insurance details
            if (_upsSettings.InsurePackage && insuranceAmount > decimal.Zero)
            {
                var currencyCode = _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId)?.CurrencyCode;
                package.PackageServiceOptions = new UPSRate.PackageServiceOptionsType
                {
                    Insurance = new UPSRate.InsuranceType
                    {
                        BasicFlexibleParcelIndicator = new UPSRate.InsuranceValueType
                        {
                            CurrencyCode  = currencyCode,
                            MonetaryValue = insuranceAmount.ToString()
                        }
                    }
                };
            }

            return(package);
        }
Пример #2
0
        /// <summary>
        /// Create package details
        /// </summary>
        /// <param name="width">Width</param>
        /// <param name="length">Length</param>
        /// <param name="height">Height</param>
        /// <param name="weight">Weight</param>
        /// <param name="insuranceAmount">Insurance amount</param>
        /// <returns>Package details</returns>
        private async Task <UPSRate.PackageType> CreatePackageAsync(decimal width, decimal length, decimal height, decimal weight, decimal insuranceAmount)
        {
            //set package details
            var package = new UPSRate.PackageType
            {
                PackagingType = new UPSRate.CodeDescriptionType
                {
                    Code = GetUpsCode(_upsSettings.PackagingType)
                }
            };

            //set dimensions and weight details
            if (!_upsSettings.PassDimensions)
            {
                width = length = height = 0;
            }
            package.Dimensions = new UPSRate.DimensionsType
            {
                Width             = width.ToString("0.00", CultureInfo.InvariantCulture),
                Length            = length.ToString("0.00", CultureInfo.InvariantCulture),
                Height            = height.ToString("0.00", CultureInfo.InvariantCulture),
                UnitOfMeasurement = new UPSRate.CodeDescriptionType {
                    Code = _upsSettings.DimensionsType
                }
            };
            package.PackageWeight = new UPSRate.PackageWeightType
            {
                Weight            = weight.ToString("0.00", CultureInfo.InvariantCulture),
                UnitOfMeasurement = new UPSRate.CodeDescriptionType {
                    Code = _upsSettings.WeightType
                },
            };

            //set insurance details
            if (_upsSettings.InsurePackage && insuranceAmount > decimal.Zero)
            {
                var currencyCode = (await _currencyService.GetCurrencyByIdAsync(_currencySettings.PrimaryStoreCurrencyId))?.CurrencyCode;
                package.PackageServiceOptions = new UPSRate.PackageServiceOptionsType
                {
                    Insurance = new UPSRate.InsuranceType
                    {
                        BasicFlexibleParcelIndicator = new UPSRate.InsuranceValueType
                        {
                            CurrencyCode  = currencyCode,
                            MonetaryValue = insuranceAmount.ToString("0.00", CultureInfo.InvariantCulture)
                        }
                    }
                };
            }

            return(package);
        }