private List <ShippingOption> ParseResponse(RateReply reply) { var additionalFee = IoC.Resolve <ISettingManager>().GetSettingValueDecimalNative("ShippingRateComputationMethod.FedEx.AdditionalFee", 0); string carrierServicesOffered = IoC.Resolve <ISettingManager>().GetSettingValue("ShippingRateComputationMethod.FedEx.CarrierServicesOffered"); bool applyDiscount = IoC.Resolve <ISettingManager>().GetSettingValueBoolean("ShippingRateComputationMethod.FedEx.ApplyDiscounts", false); var result = new List <ShippingOption>(); Debug.WriteLine("RateReply details:"); Debug.WriteLine("**********************************************************"); foreach (var rateDetail in reply.RateReplyDetails) { var shippingOption = new ShippingOption(); string serviceName = FedExServices.GetServiceName(rateDetail.ServiceType.ToString()); // Skip the current service if services are selected and this service hasn't been selected if (!String.IsNullOrEmpty(carrierServicesOffered) && !carrierServicesOffered.Contains(rateDetail.ServiceType.ToString())) { continue; } Debug.WriteLine("ServiceType: " + rateDetail.ServiceType); if (!serviceName.Equals("UNKNOWN")) { shippingOption.Name = serviceName; Debug.WriteLine("ServiceType: " + rateDetail.ServiceType); foreach (RatedShipmentDetail shipmentDetail in rateDetail.RatedShipmentDetails) { Debug.WriteLine("RateType : " + shipmentDetail.ShipmentRateDetail.RateType); Debug.WriteLine("Total Billing Weight : " + shipmentDetail.ShipmentRateDetail.TotalBillingWeight.Value); Debug.WriteLine("Total Base Charge : " + shipmentDetail.ShipmentRateDetail.TotalBaseCharge.Amount); Debug.WriteLine("Total Discount : " + shipmentDetail.ShipmentRateDetail.TotalFreightDiscounts.Amount); Debug.WriteLine("Total Surcharges : " + shipmentDetail.ShipmentRateDetail.TotalSurcharges.Amount); Debug.WriteLine("Net Charge : " + shipmentDetail.ShipmentRateDetail.TotalNetCharge.Amount); Debug.WriteLine("*********"); // Get discounted rates if option is selected if (applyDiscount == true & shipmentDetail.ShipmentRateDetail.RateType == ReturnedRateType.PAYOR_ACCOUNT) { shippingOption.Rate = shipmentDetail.ShipmentRateDetail.TotalNetCharge.Amount + additionalFee; break; } else if (shipmentDetail.ShipmentRateDetail.RateType == ReturnedRateType.PAYOR_LIST) // Get List Rates (not discount rates) { shippingOption.Rate = shipmentDetail.ShipmentRateDetail.TotalNetCharge.Amount + additionalFee; break; } else // Skip the rate (RATED_ACCOUNT, PAYOR_MULTIWEIGHT, or RATED_LIST) { continue; } } result.Add(shippingOption); } Debug.WriteLine("**********************************************************"); } return(result); }
private void BindData() { txtURL.Text = this.SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.URL"); txtKey.Text = this.SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.Key"); txtPassword.Text = this.SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.Password"); txtAccountNumber.Text = this.SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.AccountNumber"); txtMeterNumber.Text = this.SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.MeterNumber"); cbUseResidentialRates.Checked = this.SettingManager.GetSettingValueBoolean("ShippingRateComputationMethod.FedEx.UseResidentialRates", false); cbApplyDiscounts.Checked = this.SettingManager.GetSettingValueBoolean("ShippingRateComputationMethod.FedEx.ApplyDiscounts", false); txtAdditionalFee.Value = this.SettingManager.GetSettingValueDecimalNative("ShippingRateComputationMethod.FedEx.AdditionalFee"); txtShippingOriginStreet.Text = this.SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.ShippingOrigin.Street"); txtShippingOriginCity.Text = this.SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.ShippingOrigin.City"); txtShippingOriginStateOrProvinceCode.Text = this.SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.ShippingOrigin.StateOrProvinceCode"); txtShippingOriginPostalCode.Text = this.SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.ShippingOrigin.PostalCode"); txtShippingOriginCountryCode.Text = this.SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.ShippingOrigin.CountryCode"); // Get the selected offered services from the database string carrierServicesOffered = this.SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.CarrierServicesOffered"); var services = new FedExServices(); // Load default options if (carrierServicesOffered.Length == 0) { foreach (string service in services.Services) { this.cblCarrierServicesOffered.Items.Add(service); } } else { // Load and select previously selected services foreach (string service in services.Services) { var cblItem = new ListItem(service); string serviceId = FedExServices.GetServiceId(service); if (!String.IsNullOrEmpty(serviceId) && !String.IsNullOrEmpty(carrierServicesOffered)) { if (carrierServicesOffered.Contains(serviceId) == true) { cblItem.Selected = true; } } this.cblCarrierServicesOffered.Items.Add(cblItem); } } }