コード例 #1
0
        public ActionResult Configure(UPSShippingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Configure());
            }

            //save settings
            _upsSettings.Url       = model.Url;
            _upsSettings.AccessKey = model.AccessKey;
            _upsSettings.Username  = model.Username;
            _upsSettings.Password  = model.Password;
            _upsSettings.AdditionalHandlingCharge = model.AdditionalHandlingCharge;
            _upsSettings.InsurePackage            = model.InsurePackage;
            _upsSettings.CustomerClassification   = (UPSCustomerClassification)Enum.Parse(typeof(UPSCustomerClassification), model.CustomerClassification);
            _upsSettings.PickupType           = (UPSPickupType)Enum.Parse(typeof(UPSPickupType), model.PickupType);
            _upsSettings.PackagingType        = (UPSPackagingType)Enum.Parse(typeof(UPSPackagingType), model.PackagingType);
            _upsSettings.PackingPackageVolume = model.PackingPackageVolume;
            _upsSettings.PackingType          = (PackingType)model.PackingType;
            _upsSettings.PassDimensions       = model.PassDimensions;
            _upsSettings.Tracing = model.Tracing;


            // Save selected services
            var carrierServicesOfferedDomestic       = new StringBuilder();
            int carrierServicesDomesticSelectedCount = 0;

            if (model.CheckedCarrierServices != null)
            {
                foreach (var cs in model.CheckedCarrierServices)
                {
                    carrierServicesDomesticSelectedCount++;
                    string serviceId = UPSServices.GetServiceId(cs);
                    if (!String.IsNullOrEmpty(serviceId))
                    {
                        // Add delimiters [] so that single digit IDs aren't found in multi-digit IDs
                        carrierServicesOfferedDomestic.AppendFormat("[{0}]:", serviceId);
                    }
                }
            }
            // Add default options if no services were selected
            if (carrierServicesDomesticSelectedCount == 0)
            {
                _upsSettings.CarrierServicesOffered = "[03]:[12]:[11]:[08]:";
            }
            else
            {
                _upsSettings.CarrierServicesOffered = carrierServicesOfferedDomestic.ToString();
            }

            _settingService.SaveSetting(_upsSettings);

            SuccessNotification(_localizationService.GetResource("Admin.Plugins.Saved"));

            return(Configure());
        }
コード例 #2
0
        public ActionResult Configure(UPSShippingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Configure());
            }

            //save settings
            _upsSettings.Url       = model.Url;
            _upsSettings.AccessKey = model.AccessKey;
            _upsSettings.Username  = model.Username;
            _upsSettings.Password  = model.Password;
            _upsSettings.AdditionalHandlingCharge = model.AdditionalHandlingCharge;
            _upsSettings.InsurePackage            = model.InsurePackage;
            _upsSettings.CustomerClassification   = (UPSCustomerClassification)Enum.Parse(typeof(UPSCustomerClassification), model.CustomerClassification);
            _upsSettings.PickupType    = (UPSPickupType)Enum.Parse(typeof(UPSPickupType), model.PickupType);
            _upsSettings.PackagingType = (UPSPackagingType)Enum.Parse(typeof(UPSPackagingType), model.PackagingType);
            _upsSettings.DefaultShippedFromCountryId     = model.DefaultShippedFromCountryId;
            _upsSettings.DefaultShippedFromZipPostalCode = model.DefaultShippedFromZipPostalCode;


            // Save selected services
            var carrierServicesOfferedDomestic       = new StringBuilder();
            int carrierServicesDomesticSelectedCount = 0;

            if (model.CheckedCarrierServices != null)
            {
                foreach (var cs in model.CheckedCarrierServices)
                {
                    carrierServicesDomesticSelectedCount++;
                    string serviceId = UPSServices.GetServiceId(cs);
                    if (!String.IsNullOrEmpty(serviceId))
                    {
                        // Add delimiters [] so that single digit IDs aren't found in multi-digit IDs
                        carrierServicesOfferedDomestic.AppendFormat("[{0}]:", serviceId);
                    }
                }
            }
            // Add default options if no services were selected (Priority Mail International, First-Class Mail International Package, and Express Mail International)
            if (carrierServicesDomesticSelectedCount == 0)
            {
                _upsSettings.CarrierServicesOffered = "[03]:[12]:[11]:[08]:";
            }
            else
            {
                _upsSettings.CarrierServicesOffered = carrierServicesOfferedDomestic.ToString();
            }

            _settingService.SaveSetting(_upsSettings);

            return(Configure());
        }
コード例 #3
0
        public IActionResult Configure(UPSShippingModel model)
        {
            //whether user has the authority to manage configuration
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageShippingSettings))
            {
                return(AccessDeniedView());
            }

            if (!ModelState.IsValid)
            {
                return(Configure());
            }

            //save settings
            _upsSettings.AccountNumber            = model.AccountNumber;
            _upsSettings.AccessKey                = model.AccessKey;
            _upsSettings.Username                 = model.Username;
            _upsSettings.Password                 = model.Password;
            _upsSettings.UseSandbox               = model.UseSandbox;
            _upsSettings.AdditionalHandlingCharge = model.AdditionalHandlingCharge;
            _upsSettings.CustomerClassification   = (CustomerClassification)model.CustomerClassification;
            _upsSettings.PickupType               = (PickupType)model.PickupType;
            _upsSettings.PackagingType            = (PackagingType)model.PackagingType;
            _upsSettings.InsurePackage            = model.InsurePackage;
            _upsSettings.SaturdayDeliveryEnabled  = model.SaturdayDeliveryEnabled;
            _upsSettings.PassDimensions           = model.PassDimensions;
            _upsSettings.PackingPackageVolume     = model.PackingPackageVolume;
            _upsSettings.PackingType              = (PackingType)model.PackingType;
            _upsSettings.Tracing        = model.Tracing;
            _upsSettings.WeightType     = model.WeightType;
            _upsSettings.DimensionsType = model.DimensionsType;

            //use default services if no one is selected
            if (!model.CarrierServices.Any())
            {
                model.CarrierServices = new List <string>
                {
                    _upsService.GetUpsCode(DeliveryService.Ground),
                    _upsService.GetUpsCode(DeliveryService.WorldwideExpedited),
                    _upsService.GetUpsCode(DeliveryService.Standard),
                    _upsService.GetUpsCode(DeliveryService._3DaySelect)
                };
            }
            _upsSettings.CarrierServicesOffered = string.Join(':', model.CarrierServices.Select(service => $"[{service}]"));

            _settingService.SaveSetting(_upsSettings);

            _notificationService.SuccessNotification(_localizationService.GetResource("Admin.Plugins.Saved"));

            return(Configure());
        }
コード例 #4
0
        public IActionResult Configure()
        {
            //whether user has the authority to manage configuration
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageShippingSettings))
            {
                return(AccessDeniedView());
            }

            //prepare common model
            var model = new UPSShippingModel
            {
                AccountNumber            = _upsSettings.AccountNumber,
                AccessKey                = _upsSettings.AccessKey,
                Username                 = _upsSettings.Username,
                Password                 = _upsSettings.Password,
                UseSandbox               = _upsSettings.UseSandbox,
                AdditionalHandlingCharge = _upsSettings.AdditionalHandlingCharge,
                InsurePackage            = _upsSettings.InsurePackage,
                CustomerClassification   = (int)_upsSettings.CustomerClassification,
                PickupType               = (int)_upsSettings.PickupType,
                PackagingType            = (int)_upsSettings.PackagingType,
                SaturdayDeliveryEnabled  = _upsSettings.SaturdayDeliveryEnabled,
                PassDimensions           = _upsSettings.PassDimensions,
                PackingPackageVolume     = _upsSettings.PackingPackageVolume,
                PackingType              = (int)_upsSettings.PackingType,
                Tracing = _upsSettings.Tracing
            };

            //prepare offered delivery services
            var servicesCodes = _upsSettings.CarrierServicesOffered.Split(':', StringSplitOptions.RemoveEmptyEntries)
                                .Select(idValue => idValue.Trim('[', ']')).ToList();

            //prepare available options
            model.AvailableCustomerClassifications = CustomerClassification.DailyRates.ToSelectList(false)
                                                     .Select(item => new SelectListItem(item.Text, item.Value)).ToList();
            model.AvailablePickupTypes = PickupType.DailyPickup.ToSelectList(false)
                                         .Select(item => new SelectListItem(item.Text, item.Value)).ToList();
            model.AvailablePackagingTypes = PackagingType.CustomerSuppliedPackage.ToSelectList(false)
                                            .Select(item => new SelectListItem(item.Text?.TrimStart('_'), item.Value)).ToList();
            model.AvaliablePackingTypes = PackingType.PackByDimensions.ToSelectList(false)
                                          .Select(item => new SelectListItem(item.Text, item.Value)).ToList();
            model.AvailableCarrierServices = DeliveryService.Standard.ToSelectList(false).Select(item =>
            {
                var serviceCode = _upsService.GetUpsCode((DeliveryService)int.Parse(item.Value));
                return(new SelectListItem($"UPS {item.Text?.TrimStart('_')}", serviceCode, servicesCodes.Contains(serviceCode)));
            }).ToList();

            return(View("~/Plugins/Shipping.UPS/Views/Configure.cshtml", model));
        }
コード例 #5
0
        public ActionResult Configure()
        {
            var model = new UPSShippingModel();

            model.Url       = _upsSettings.Url;
            model.AccessKey = _upsSettings.AccessKey;
            model.Username  = _upsSettings.Username;
            model.Password  = _upsSettings.Password;
            model.AdditionalHandlingCharge = _upsSettings.AdditionalHandlingCharge;
            model.InsurePackage            = _upsSettings.InsurePackage;

            foreach (UPSCustomerClassification customerClassification in Enum.GetValues(typeof(UPSCustomerClassification)))
            {
                model.AvailableCustomerClassifications.Add(new SelectListItem()
                {
                    Text     = CommonHelper.ConvertEnum(customerClassification.ToString()),
                    Value    = customerClassification.ToString(),
                    Selected = customerClassification == _upsSettings.CustomerClassification
                });
            }
            foreach (UPSPickupType pickupType in Enum.GetValues(typeof(UPSPickupType)))
            {
                model.AvailablePickupTypes.Add(new SelectListItem()
                {
                    Text     = CommonHelper.ConvertEnum(pickupType.ToString()),
                    Value    = pickupType.ToString(),
                    Selected = pickupType == _upsSettings.PickupType
                });
            }
            foreach (UPSPackagingType packagingType in Enum.GetValues(typeof(UPSPackagingType)))
            {
                model.AvailablePackagingTypes.Add(new SelectListItem()
                {
                    Text     = CommonHelper.ConvertEnum(packagingType.ToString()),
                    Value    = packagingType.ToString(),
                    Selected = packagingType == _upsSettings.PackagingType
                });
            }

            var services = new UPSServices();
            // Load Domestic service names
            string carrierServicesOfferedDomestic = _upsSettings.CarrierServicesOffered;

            foreach (string service in services.Services)
            {
                model.AvailableCarrierServices.Add(service);
            }

            if (!String.IsNullOrEmpty(carrierServicesOfferedDomestic))
            {
                foreach (string service in services.Services)
                {
                    string serviceId = UPSServices.GetServiceId(service);
                    if (!String.IsNullOrEmpty(serviceId) && !String.IsNullOrEmpty(carrierServicesOfferedDomestic))
                    {
                        // Add delimiters [] so that single digit IDs aren't found in multi-digit IDs
                        if (carrierServicesOfferedDomestic.Contains(String.Format("[{0}]", serviceId)))
                        {
                            model.CarrierServicesOffered.Add(service);
                        }
                    }
                }
            }

            return(View("Nop.Plugin.Shipping.UPS.Views.ShippingUPS.Configure", model));
        }
コード例 #6
0
        public IActionResult Configure()
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageShippingSettings))
            {
                return(AccessDeniedView());
            }

            var model = new UPSShippingModel
            {
                Url                      = _upsSettings.Url,
                AccountNumber            = _upsSettings.AccountNumber,
                AccessKey                = _upsSettings.AccessKey,
                Username                 = _upsSettings.Username,
                Password                 = _upsSettings.Password,
                AdditionalHandlingCharge = _upsSettings.AdditionalHandlingCharge,
                InsurePackage            = _upsSettings.InsurePackage,
                PackingPackageVolume     = _upsSettings.PackingPackageVolume,
                PackingType              = (int)_upsSettings.PackingType,
                PackingTypeValues        = _upsSettings.PackingType.ToSelectList(),
                PassDimensions           = _upsSettings.PassDimensions
            };

            foreach (UPSCustomerClassification customerClassification in Enum.GetValues(typeof(UPSCustomerClassification)))
            {
                model.AvailableCustomerClassifications.Add(new SelectListItem
                {
                    Text     = CommonHelper.ConvertEnum(customerClassification.ToString()),
                    Value    = customerClassification.ToString(),
                    Selected = customerClassification == _upsSettings.CustomerClassification
                });
            }
            foreach (UPSPickupType pickupType in Enum.GetValues(typeof(UPSPickupType)))
            {
                model.AvailablePickupTypes.Add(new SelectListItem
                {
                    Text     = CommonHelper.ConvertEnum(pickupType.ToString()),
                    Value    = pickupType.ToString(),
                    Selected = pickupType == _upsSettings.PickupType
                });
            }
            foreach (UPSPackagingType packagingType in Enum.GetValues(typeof(UPSPackagingType)))
            {
                model.AvailablePackagingTypes.Add(new SelectListItem
                {
                    Text     = CommonHelper.ConvertEnum(packagingType.ToString()),
                    Value    = packagingType.ToString(),
                    Selected = packagingType == _upsSettings.PackagingType
                });
            }

            // Load Domestic service names
            var carrierServicesOfferedDomestic = _upsSettings.CarrierServicesOffered;

            foreach (var service in UPSServices.Services)
            {
                model.AvailableCarrierServices.Add(service);
            }

            if (!string.IsNullOrEmpty(carrierServicesOfferedDomestic))
            {
                foreach (var service in UPSServices.Services)
                {
                    var serviceId = UPSServices.GetServiceId(service);
                    if (!string.IsNullOrEmpty(serviceId))
                    {
                        // Add delimiters [] so that single digit IDs aren't found in multi-digit IDs
                        if (carrierServicesOfferedDomestic.Contains($"[{serviceId}]"))
                        {
                            model.CarrierServicesOffered.Add(service);
                        }
                    }
                }
            }

            return(View("~/Plugins/Shipping.UPS/Views/Configure.cshtml", model));
        }
コード例 #7
0
        public IActionResult Configure()
        {
            //whether user has the authority to manage configuration
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageShippingSettings))
            {
                return(AccessDeniedView());
            }

            //prepare common model
            var model = new UPSShippingModel
            {
                AccountNumber            = _upsSettings.AccountNumber,
                AccessKey                = _upsSettings.AccessKey,
                Username                 = _upsSettings.Username,
                Password                 = _upsSettings.Password,
                UseSandbox               = _upsSettings.UseSandbox,
                AdditionalHandlingCharge = _upsSettings.AdditionalHandlingCharge,
                InsurePackage            = _upsSettings.InsurePackage,
                CustomerClassification   = (int)_upsSettings.CustomerClassification,
                PickupType               = (int)_upsSettings.PickupType,
                PackagingType            = (int)_upsSettings.PackagingType,
                SaturdayDeliveryEnabled  = _upsSettings.SaturdayDeliveryEnabled,
                PassDimensions           = _upsSettings.PassDimensions,
                PackingPackageVolume     = _upsSettings.PackingPackageVolume,
                PackingType              = (int)_upsSettings.PackingType,
                Tracing        = _upsSettings.Tracing,
                WeightType     = _upsSettings.WeightType,
                DimensionsType = _upsSettings.DimensionsType
            };

            //prepare offered delivery services
            var servicesCodes = _upsSettings.CarrierServicesOffered.Split(':', StringSplitOptions.RemoveEmptyEntries)
                                .Select(idValue => idValue.Trim('[', ']')).ToList();

            //prepare available options
            model.AvailableCustomerClassifications = CustomerClassification.DailyRates.ToSelectList(false)
                                                     .Select(item => new SelectListItem(item.Text, item.Value)).ToList();
            model.AvailablePickupTypes = PickupType.DailyPickup.ToSelectList(false)
                                         .Select(item => new SelectListItem(item.Text, item.Value)).ToList();
            model.AvailablePackagingTypes = PackagingType.CustomerSuppliedPackage.ToSelectList(false)
                                            .Select(item => new SelectListItem(item.Text?.TrimStart('_'), item.Value)).ToList();
            model.AvaliablePackingTypes = PackingType.PackByDimensions.ToSelectList(false)
                                          .Select(item => new SelectListItem(item.Text, item.Value)).ToList();
            model.AvailableCarrierServices = DeliveryService.Standard.ToSelectList(false).Select(item =>
            {
                var serviceCode = _upsService.GetUpsCode((DeliveryService)int.Parse(item.Value));
                return(new SelectListItem($"UPS {item.Text?.TrimStart('_')}", serviceCode, servicesCodes.Contains(serviceCode)));
            }).ToList();
            model.AvaliableWeightTypes = new List <SelectListItem> {
                new SelectListItem("LBS", "LBS"), new SelectListItem("KGS", "KGS")
            };
            model.AvaliableDimensionsTypes = new List <SelectListItem> {
                new SelectListItem("IN", "IN"), new SelectListItem("CM", "CM")
            };

            //check measures
            var weightSystemName = _upsSettings.WeightType switch { "LBS" => "lb", "KGS" => "kg", _ => null };

            if (_measureService.GetMeasureWeightBySystemKeyword(weightSystemName) == null)
            {
                _notificationService.ErrorNotification($"Could not load '{weightSystemName}' <a href=\"{Url.Action("List", "Measure")}\" target=\"_blank\">measure weight</a>", false);
            }

            var dimensionSystemName = _upsSettings.DimensionsType switch { "IN" => "inches", "CM" => "centimeters", _ => null };

            if (_measureService.GetMeasureDimensionBySystemKeyword(dimensionSystemName) == null)
            {
                _notificationService.ErrorNotification($"Could not load '{dimensionSystemName}' <a href=\"{Url.Action("List", "Measure")}\" target=\"_blank\">measure dimension</a>", false);
            }

            return(View("~/Plugins/Shipping.UPS/Views/Configure.cshtml", model));
        }