private static List <DeliveryOption> GetDeliveryOptionsFromService(string Country, string locale, ShippingAddress_V01 address) { List <DeliveryOption> result = new List <DeliveryOption>(); var proxy = ServiceClientProvider.GetShippingServiceProxy(); DeliveryOptionForCountryRequest_V01 request = new DeliveryOptionForCountryRequest_V01(); request.Country = Country; //request.State = request.State = (address != null && address.Address != null && !string.IsNullOrEmpty(address.Address.StateProvinceTerritory)) ? address.Address.StateProvinceTerritory : "HK"; request.Locale = locale; ShippingAlternativesResponse_V01 response = proxy.GetDeliveryOptions(new GetDeliveryOptionsRequest(request)).GetDeliveryOptionsResult as ShippingAlternativesResponse_V01; foreach (ShippingOption_V01 option in response.DeliveryAlternatives) { DeliveryOption currentOption = new DeliveryOption(option); currentOption.Name = option.Description; currentOption.WarehouseCode = option.WarehouseCode; currentOption.State = request.State; result.Add(currentOption); } return(result.OrderBy(d => d.displayIndex.ToString() + "_" + d.DisplayName).ToList()); }
public List <DeliveryOption> ConvertShippingAlternativetoDeliveryOption(ShippingAlternativesResponse_V01 response) { if (response.DeliveryAlternatives != null && response.DeliveryAlternatives.Count > 0) { return(response.DeliveryAlternatives.Select(option => new DeliveryOption(option)).ToList()); } return(new List <DeliveryOption>()); }
private static List <DeliveryOption> GetDeliveryOptionsFromService(string Country, string locale, ShippingAddress_V01 address, DeliveryOptionType type) { DeliveryPickupAlternativesResponse_V03 pickupAlternativesResponse = null; if (type == DeliveryOptionType.PickupFromCourier) { List <DeliveryOption> result = new List <DeliveryOption>(); var proxy = ServiceClientProvider.GetShippingServiceProxy(); pickupAlternativesResponse = proxy.GetDeliveryPickupAlternatives(new GetDeliveryPickupAlternativesRequest(new DeliveryPickupAlternativesRequest_V03 { CountryCode = Country, State = string.Empty })).GetDeliveryPickupAlternativesResult as DeliveryPickupAlternativesResponse_V03; if (pickupAlternativesResponse != null && pickupAlternativesResponse.DeliveryPickupAlternatives != null) { bool courier = false; if (type == DeliveryOptionType.PickupFromCourier) { courier = true; } result.AddRange( from po in pickupAlternativesResponse.DeliveryPickupAlternatives select new DeliveryOption(po, courier)); Array.ForEach(result.ToArray(), a => a.Address = getAddress(pickupAlternativesResponse, a.Id)); } return(result); } else { List <DeliveryOption> result = new List <DeliveryOption>(); var proxy = ServiceClientProvider.GetShippingServiceProxy(); DeliveryOptionForCountryRequest_V01 request = new DeliveryOptionForCountryRequest_V01(); request.Country = Country; request.State = (address != null && address.Address != null && !string.IsNullOrEmpty(address.Address.StateProvinceTerritory)) ? address.Address.StateProvinceTerritory : "Москва"; request.Locale = locale; ShippingAlternativesResponse_V01 response = proxy.GetDeliveryOptions(new GetDeliveryOptionsRequest(request)).GetDeliveryOptionsResult as ShippingAlternativesResponse_V01; foreach (ShippingOption_V01 option in response.DeliveryAlternatives) { DeliveryOption currentOption = new DeliveryOption(option); currentOption.Name = option.Description; currentOption.WarehouseCode = option.WarehouseCode; currentOption.State = request.State; currentOption.displayIndex = option.DisplayOrder; currentOption.DisplayName = option.Description; result.Add(currentOption); } //result.Sort((x, y) => x.displayIndex.CompareTo(y.displayIndex)); return(result.OrderBy(d => d.displayIndex.ToString() + "_" + d.DisplayName).ToList()); } }
public void ConvertShippingAlternativetoDeliveryOptionTest_GB_Null_0() { ShippingProvider_UK target = new ShippingProvider_UK(); ShippingAlternativesResponse_V01 response = new ShippingAlternativesResponse_V01() { DeliveryAlternatives = null }; var expected = 0; List <DeliveryOption> actual; actual = target.ConvertShippingAlternativetoDeliveryOption(response); Assert.AreEqual(expected, actual.Count); }
public override List <DeliveryOption> GetDeliveryOptionsListForShipping(string country, string locale, ShippingAddress_V01 address) { var final = new List <DeliveryOption>(); if (!String.IsNullOrEmpty(address.Address.PostalCode)) { int postalCodeIntValue = 0; bool validCode = int.TryParse(address.Address.PostalCode.Split('-')[0], out postalCodeIntValue); if (validCode) { var deliveryOptionList = GetDeliveryOptionsListForShipping(locale); if (deliveryOptionList.Count > 0) { foreach (var option in deliveryOptionList) { var minRange = 0; var maxRange = 0; var range = option.PostalCode.Split('-'); if (range.Count() == 2 && int.TryParse(range[0], out minRange) && int.TryParse(range[1], out maxRange)) { if (postalCodeIntValue >= minRange && postalCodeIntValue <= maxRange) { final.Add(option); } } } } if (final.Count == 0) { var proxy = ServiceClientProvider.GetShippingServiceProxy(); DeliveryOptionForCountryRequest_V01 request = new DeliveryOptionForCountryRequest_V01(); request.Country = country; request.State = String.Empty; request.Locale = locale; ShippingAlternativesResponse_V01 response = proxy.GetDeliveryOptions(new GetDeliveryOptionsRequest(request)).GetDeliveryOptionsResult as ShippingAlternativesResponse_V01; foreach (ShippingOption_V01 option in response.DeliveryAlternatives) { final.Add(new DeliveryOption(option)); } } } } return(final); }
private static List <DeliveryOption> GetDeliveryOptionsFromService(string Country, string locale, ShippingAddress_V01 address) { List <DeliveryOption> result = new List <DeliveryOption>(); var proxy = ServiceClientProvider.GetShippingServiceProxy(); DeliveryOptionForCountryRequest_V01 request = new DeliveryOptionForCountryRequest_V01(); request.Country = Country; request.State = (address != null && address.Address != null && !string.IsNullOrEmpty(address.Address.City)) ? address.Address.City : string.Empty; request.Locale = locale; ShippingAlternativesResponse_V01 response = proxy.GetDeliveryOptions(new GetDeliveryOptionsRequest(request)).GetDeliveryOptionsResult as ShippingAlternativesResponse_V01; foreach (ShippingOption_V01 option in response.DeliveryAlternatives) { DeliveryOption currentOption = new DeliveryOption(option); currentOption.State = request.State; currentOption.WarehouseCode = option.WarehouseCode; currentOption.FreightCode = option.FreightCode; result.Add(currentOption); } return(result.ToList()); }
public void ConvertShippingAlternativetoDeliveryOptionTest_GB_2_2() { ShippingProvider_UK target = new ShippingProvider_UK(); List <ShippingOption_V01> list = new List <ShippingOption_V01>(); list.Add(new ShippingOption_V01() { CourierName = "name", Description = "dummy Description", DisplayOrder = 0, End = DateTime.Now.AddDays(20), FreightCode = "30", ID = 10025, IsDefault = false, ShippingSource = new ShippingSource_V01(), Start = DateTime.Now.AddDays(-10), WarehouseCode = "FXD" }); list.Add(new ShippingOption_V01() { CourierName = "name2", Description = "dummy Description 2", DisplayOrder = 1, End = DateTime.Now.AddDays(25), FreightCode = "35", ID = 10026, IsDefault = false, ShippingSource = new ShippingSource_V01(), Start = DateTime.Now.AddDays(-15), WarehouseCode = "IND" }); ShippingAlternativesResponse_V01 response = new ShippingAlternativesResponse_V01() { DeliveryAlternatives = list }; var expected = 2; List <DeliveryOption> actual; actual = target.ConvertShippingAlternativetoDeliveryOption(response); Assert.AreEqual(expected, actual.Count); }