Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
 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>());
 }
Exemplo n.º 3
0
        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());
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 6
0
        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());
        }
Exemplo n.º 7
0
        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);
        }