public ActionResult Configure() { var model = new USPSModel(); model.UseSandbox = _uspsSettings.UseSandbox; model.Username = _uspsSettings.Username; model.Password = _uspsSettings.Password; model.AdditionalHandlingCharge = _uspsSettings.AdditionalHandlingCharge; model.ZipPostalCodeFrom = _uspsSettings.ZipPostalCodeFrom; var services = new USPSServices(); // Load Domestic service names string carrierServicesOfferedDomestic = _uspsSettings.CarrierServicesOfferedDomestic; foreach (string service in services.DomesticServices) { model.AvailableCarrierServicesDomestic.Add(service); } if (!String.IsNullOrEmpty(carrierServicesOfferedDomestic)) { foreach (string service in services.DomesticServices) { string serviceId = USPSServices.GetServiceIdDomestic(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.CarrierServicesOfferedDomestic.Add(service); } } } } // Load Internation service names string carrierServicesOfferedInternational = _uspsSettings.CarrierServicesOfferedInternational; foreach (string service in services.InternationalServices) { model.AvailableCarrierServicesInternational.Add(service); } if (!String.IsNullOrEmpty(carrierServicesOfferedInternational)) { foreach (string service in services.InternationalServices) { string serviceId = USPSServices.GetServiceIdInternational(service); if (!String.IsNullOrEmpty(serviceId) && !String.IsNullOrEmpty(carrierServicesOfferedInternational)) { // Add delimiters [] so that single digit IDs aren't found in multi-digit IDs if (carrierServicesOfferedInternational.Contains(String.Format("[{0}]", serviceId))) { model.CarrierServicesOfferedInternational.Add(service); } } } } return(View(model)); }
public ActionResult Configure(USPSModel model) { if (!ModelState.IsValid) { return(Configure()); } //save settings _uspsSettings.UseSandbox = model.UseSandbox; _uspsSettings.Username = model.Username; _uspsSettings.Password = model.Password; _uspsSettings.AdditionalHandlingCharge = model.AdditionalHandlingCharge; _uspsSettings.ZipPostalCodeFrom = model.ZipPostalCodeFrom; // Save selected Domestic services var carrierServicesOfferedDomestic = new StringBuilder(); int carrierServicesDomesticSelectedCount = 0; if (model.CheckedCarrierServicesDomestic != null) { foreach (var cs in model.CheckedCarrierServicesDomestic) { carrierServicesDomesticSelectedCount++; string serviceId = USPSServices.GetServiceIdDomestic(cs); //unselect any other services if NONE is selected if (serviceId.Equals("NONE")) { carrierServicesOfferedDomestic.Clear(); carrierServicesOfferedDomestic.AppendFormat("[{0}]:", serviceId); break; } 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, Express, and Parcel Post) if (carrierServicesDomesticSelectedCount == 0) { _uspsSettings.CarrierServicesOfferedDomestic = "[1]:[3]:[4]:"; } else { _uspsSettings.CarrierServicesOfferedDomestic = carrierServicesOfferedDomestic.ToString(); } // Save selected International services var carrierServicesOfferedInternational = new StringBuilder(); int carrierServicesInternationalSelectedCount = 0; if (model.CheckedCarrierServicesInternational != null) { foreach (var cs in model.CheckedCarrierServicesInternational) { carrierServicesInternationalSelectedCount++; string serviceId = USPSServices.GetServiceIdInternational(cs); // unselect other services if NONE is selected if (serviceId.Equals("NONE")) { carrierServicesOfferedInternational.Clear(); carrierServicesOfferedInternational.AppendFormat("[{0}]:", serviceId); break; } if (!String.IsNullOrEmpty(serviceId)) { // Add delimiters [] so that single digit IDs aren't found in multi-digit IDs carrierServicesOfferedInternational.AppendFormat("[{0}]:", serviceId); } } } // Add default options if no services were selected (Priority Mail International, First-Class Mail International Package, and Express Mail International) if (carrierServicesInternationalSelectedCount == 0) { _uspsSettings.CarrierServicesOfferedInternational = "[2]:[15]:[1]:"; } else { _uspsSettings.CarrierServicesOfferedInternational = carrierServicesOfferedInternational.ToString(); } _settingService.SaveSetting(_uspsSettings); return(Configure()); }