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)); }
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)); }