Esempio n. 1
0
        public override string FormatShippingAddress(ShippingAddress_V01 address, DeliveryOptionType type, string description, bool includeName)
        {
            if (address == null || address.Address == null)
            {
                return(string.Empty);
            }

            var formattedAddress = string.Empty;

            if (type == DeliveryOptionType.Shipping)
            {
                formattedAddress = includeName
                                       ? string.Format("{0}<br/>{1}<br/>{2} {3}<br/>{4}",
                                                       address.Recipient ?? string.Empty,
                                                       address.Address.Line1,
                                                       address.Address.PostalCode, address.Address.City,
                                                       formatPhone(address.Phone))
                                       : string.Format("{0}<br/>{1} {2}<br/>{3}",
                                                       address.Address.Line1,
                                                       address.Address.PostalCode, address.Address.City,
                                                       formatPhone(address.Phone));
            }
            else if (type == DeliveryOptionType.Pickup)
            {
                formattedAddress = includeName
                                       ? string.Format("{0}<br/>{1}<br/>{2} {3}<br/>{4}<br/>{5}",
                                                       address.Recipient ?? string.Empty,
                                                       address.Address.Line1,
                                                       address.Address.PostalCode, address.Address.City, address.Address.CountyDistrict,
                                                       formatPhone(address.Phone))
                                       : string.Format("{0}<br/>{1} {2}<br/>{3}<br/>{4}",
                                                       address.Address.Line1,
                                                       address.Address.PostalCode, address.Address.City, address.Address.CountyDistrict,
                                                       formatPhone(address.Phone));
            }
            else
            {
                formattedAddress = base.FormatShippingAddress(address, type, description, includeName);
            }
            return(formattedAddress);
        }
        public override List <DeliveryOption> GetDeliveryOptionsListForPickup(string country,
                                                                              string locale,
                                                                              ShippingAddress_V01 address)
        {
            var cacheKey        = string.Format("{0}_FreightCodes_{1}", FedexLocationCacheKey, locale);
            var deliveryOptions = HttpRuntime.Cache[cacheKey] as List <DeliveryOption>;

            if (deliveryOptions == null)
            {
                deliveryOptions = new List <DeliveryOption>();
                var proxy   = ServiceClientProvider.GetShippingServiceProxy();
                var request = new DeliveryOptionForCountryRequest_V01
                {
                    Country = country,
                    State   = "*",
                    Locale  = locale
                };
                try
                {
                    var response = proxy.GetDeliveryOptions(new GetDeliveryOptionsRequest(request)).GetDeliveryOptionsResult as ShippingAlternativesResponse_V01;
                    if (response != null && response.DeliveryAlternatives.Count > 0)
                    {
                        deliveryOptions.AddRange(
                            response.DeliveryAlternatives.Where(option => option.FreightCode.StartsWith("H"))
                            .Select(option => new DeliveryOption(option)));
                    }
                    if (deliveryOptions.Any())
                    {
                        HttpRuntime.Cache.Insert(cacheKey, deliveryOptions, null,
                                                 DateTime.Now.AddMinutes(FedexCacheMinutes),
                                                 Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
                    }
                }
                catch (Exception ex)
                {
                    LoggerHelper.Error(string.Format("GetDeliveryOptionsListForPickup error: Country: PR, error: {0}",
                                                     ex.Message));
                }
            }
            return(deliveryOptions);
        }
Esempio n. 3
0
        /// <summary>
        /// Gets the freight and warehouse codes according address
        /// </summary>
        /// <param name="address">The address</param>
        /// <returns></returns>
        public override string[] GetFreightCodeAndWarehouse(ShippingAddress_V01 address)
        {
            var freightCodeAndWarehouse = new[] { string.Empty, string.Empty };

            if (address != null && address.Address != null && !string.IsNullOrEmpty(address.Address.City))
            {
                var cityState = string.Format("{0}|{1}|{2}", address.Address.StateProvinceTerritory, address.Address.City,
                                              address.Address.CountyDistrict == null ? string.Empty : address.Address.CountyDistrict);

                //Looking for WH and Freight code
                var options = HttpRuntime.Cache[CacheKey] as Dictionary <string, string[]>;
                if (options == null || !options.ContainsKey(cityState))
                {
                    var optionForCity = GetFreightCodeAndWarehouseFromService(cityState);
                    if (options == null)
                    {
                        options = new Dictionary <string, string[]>();
                    }
                    if (optionForCity != null && !string.IsNullOrEmpty(optionForCity[0]) &&
                        !string.IsNullOrEmpty(optionForCity[1]))
                    {
                        options.Add(cityState, optionForCity);
                    }
                    HttpRuntime.Cache.Insert(CacheKey, options, null, DateTime.Now.AddMinutes(HN_DELIVERYINFO_CACHE_MINUTES),
                                             Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
                }

                var cityOption = options.FirstOrDefault(o => o.Key == cityState);
                if (cityOption.Value != null && !string.IsNullOrEmpty(cityOption.Value[1]))
                {
                    freightCodeAndWarehouse[0] = cityOption.Value[0].Trim();
                    freightCodeAndWarehouse[1] = cityOption.Value[1].Trim();
                }
                else if (freightCity.Contains(address.Address.City.ToUpper()))
                {
                    freightCodeAndWarehouse[0] = "HNS";
                }
                return(freightCodeAndWarehouse);
            }
            return(freightCodeAndWarehouse);
        }
Esempio n. 4
0
        private static string[] GetFreightCodeAndWarehouseFromService(ShippingAddress_V01 address)
        {
            var proxy   = ServiceClientProvider.GetShippingServiceProxy();
            var request = new DeliveryOptionForCountryRequest_V01
            {
                Country = "BO",
                Locale  = "es-BO",
                State   = string.Format("{0} - {1} - {2}",
                                        address.Address.StateProvinceTerritory,
                                        address.Address.City,
                                        address.Address.CountyDistrict)
            };
            var response       = proxy.GetDeliveryOptions(new GetDeliveryOptionsRequest(request)).GetDeliveryOptionsResult as ShippingAlternativesResponse_V01;
            var shippingOption = response.DeliveryAlternatives.FirstOrDefault();

            if (shippingOption != null)
            {
                return(new[] { shippingOption.FreightCode, shippingOption.WarehouseCode });
            }
            return(null);
        }
        public override string FormatShippingAddress(ShippingAddress_V01 address, DeliveryOptionType type, string description, bool includeName)
        {
            if (null == address || address.Address == null)
            {
                return(string.Empty);
            }
            string formattedAddress = string.Empty;

            if (type == DeliveryOptionType.Shipping)
            {
                formattedAddress = includeName ? string.Format("{0}<br>{1}<br>{2}, {3}, {4}<br>{5}<br>{6}", address.Recipient ?? string.Empty,
                                                               address.Address.Line1, address.Address.CountyDistrict, address.Address.City, address.Address.StateProvinceTerritory, address.Address.PostalCode,
                                                               formatPhone(address.Phone)) :
                                   string.Format("{0}<br>{1}, {2}, {3}<br>{4}<br>{5}",
                                                 address.Address.Line1, address.Address.CountyDistrict, address.Address.City, address.Address.StateProvinceTerritory, address.Address.PostalCode,
                                                 formatPhone(address.Phone));
            }
            else if (type == DeliveryOptionType.PickupFromCourier)
            {
                formattedAddress = string.Format("{0}<br/>{1} {2} {3},<br/>{4}, {5} {6} {7}",
                                                 address.Address.Line1, address.Address.Line2 ?? string.Empty,
                                                 address.Address.Line3 ?? string.Empty, address.Address.Line4 ?? string.Empty,
                                                 address.Address.CountyDistrict, address.Address.City, address.Address.StateProvinceTerritory,
                                                 address.Address.PostalCode);
                do
                {
                    formattedAddress = formattedAddress.Replace("  ", " ");
                } while (formattedAddress.IndexOf("  ") > -1);
                do
                {
                    formattedAddress = formattedAddress.Replace("<br/> ,<br/>", "<br/>");
                } while (formattedAddress.IndexOf("<br/> ,<br/>") > -1);
            }
            else
            {
                formattedAddress = string.Format("{0}<br>{1}<br>{2}, {3}, {4}, {5}", description,
                                                 address.Address.Line1, address.Address.CountyDistrict, address.Address.City, address.Address.StateProvinceTerritory, address.Address.PostalCode);
            }
            return(formattedAddress);
        }
Esempio n. 6
0
        public override string FormatShippingAddress(ShippingAddress_V01 address,
                                                     DeliveryOptionType type,
                                                     string description,
                                                     bool includeName)
        {
            if (null == address || address.Address == null)
            {
                return(string.Empty);
            }
            string formattedAddress = string.Empty;

            if (type == DeliveryOptionType.Shipping)
            {
                return(includeName
                                       ? string.Format("{0}<br>{1},{2}<br>{3}, {4}, {5}<br>{6}",
                                                       address.Recipient ?? string.Empty,
                                                       address.Address.Line1, address.Address.Line2 ?? string.Empty,
                                                       address.Address.City, address.Address.StateProvinceTerritory,
                                                       address.Address.PostalCode,
                                                       formatPhone(address.Phone))
                                       : string.Format("{0},{1}<br>{2}, {3}, {4}<br>{5}",
                                                       address.Address.Line1, address.Address.Line2 ?? string.Empty,
                                                       address.Address.City, address.Address.StateProvinceTerritory,
                                                       address.Address.PostalCode,
                                                       formatPhone(address.Phone)));
            }
            else if (type == DeliveryOptionType.PickupFromCourier)
            {
                return(string.Format("{0}<br>{1},{2}<br>{3} {4}", description,
                                     address.Address.Line1, address.Address.Line2 ?? string.Empty,
                                     address.Address.City, address.Address.PostalCode));
            }
            else
            {
                return(string.Format("{0}<br>{1},{2}<br>{3}, {4}, {5}", description,
                                     address.Address.Line1, address.Address.Line2 ?? string.Empty,
                                     address.Address.City, address.Address.StateProvinceTerritory,
                                     address.Address.PostalCode));
            }
        }
        public virtual string FormatShippingAddress(ShippingAddress_V01 address, DeliveryOptionType type,
                                                    string description, bool includeName)
        {
            if (null == address || address.Address == null)
            {
                return(string.Empty);
            }
            string formattedAddress = string.Empty;

            if (type == DeliveryOptionType.Shipping)
            {
                formattedAddress = includeName
                                       ? string.Format("{0}<br>{1},{2}<br>{3}, {4}, {5}<br>{6}",
                                                       address.Recipient ?? string.Empty,
                                                       address.Address.Line1, address.Address.Line2 ?? string.Empty,
                                                       address.Address.City, address.Address.StateProvinceTerritory,
                                                       address.Address.PostalCode,
                                                       formatPhone(address.Phone))
                                       : string.Format("{0},{1}<br>{2}, {3}, {4}<br>{5}",
                                                       address.Address.Line1, address.Address.Line2 ?? string.Empty,
                                                       address.Address.City, address.Address.StateProvinceTerritory,
                                                       address.Address.PostalCode,
                                                       formatPhone(address.Phone));
            }
            else
            {
                formattedAddress = string.Format("{0}<br>{1},{2}<br>{3}, {4}, {5}", description,
                                                 address.Address.Line1, address.Address.Line2 ?? string.Empty,
                                                 address.Address.City, address.Address.StateProvinceTerritory,
                                                 address.Address.PostalCode);
            }
            if (formattedAddress.IndexOf(",,") > -1 || formattedAddress.IndexOf(", ,") > -1)
            {
                return(formattedAddress.Replace(",,,", ",").Replace(", , ,", ",").Replace(",,", ",").Replace(", ,", ","));
            }
            else
            {
                return(formattedAddress);
            }
        }
Esempio n. 8
0
        public override string[] GetFreightCodeAndWarehouse(ShippingAddress_V01 address)
        {
            var freightCodeAndWarehouse = new[]
            {
                HLConfigManager.Configurations.ShoppingCartConfiguration.DefaultFreightCode,
                HLConfigManager.Configurations.ShoppingCartConfiguration.DefaultWarehouse
            };

            if (address != null && address.Address != null && !string.IsNullOrEmpty(address.Address.City))
            {
                var options = HttpRuntime.Cache[CacheKey] as Dictionary <string, string[]>;
                if (options == null || !options.ContainsKey(address.Address.City))
                {
                    var optionForCity = GetFreightCodeAndWarehouseFromService(address);
                    if (options == null)
                    {
                        options = new Dictionary <string, string[]>();
                    }
                    if (optionForCity != null && !string.IsNullOrEmpty(optionForCity[0]) &&
                        !string.IsNullOrEmpty(optionForCity[1]))
                    {
                        options.Add(address.Address.City, optionForCity);
                    }
                    HttpRuntime.Cache.Insert(CacheKey, options, null, DateTime.Now.AddMinutes(VN_DELIVERYINFO_CACHE_MINUTES),
                                             Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
                }

                var cityOption = options.FirstOrDefault(o => o.Key == address.Address.City);
                if (cityOption.Value != null && !string.IsNullOrEmpty(cityOption.Value[1]))
                {
                    freightCodeAndWarehouse[0] = cityOption.Value[0];
                    freightCodeAndWarehouse[1] = cityOption.Value[1];
                }

                return(freightCodeAndWarehouse);
            }

            return(freightCodeAndWarehouse);
        }
        public override string FormatShippingAddress(ShippingAddress_V01 address,
                                                     DeliveryOptionType type,
                                                     string description,
                                                     bool includeName)
        {
            if (null == address || address.Address == null)
            {
                return(string.Empty);
            }

            if (type == DeliveryOptionType.Shipping)
            {
                return(includeName
                           ? string.Format("{0}<br>{1}, {2} {3} {4}", address.Recipient ?? string.Empty,
                                           address.Address.PostalCode, address.Address.City, address.Address.Line1,
                                           address.Address.Line2)
                           : string.Format("{0}, {1} {2} {3}",
                                           address.Address.PostalCode, address.Address.City, address.Address.Line1,
                                           address.Address.Line2));
            }
            return(string.Empty);
        }
Esempio n. 10
0
            public static AddressViewModel ConvertShippingAddressToAddressViewModel(ShippingAddress_V01 shippingAddress)
            {
                var address = new AddressViewModel
                {
                    CloudId = Guid.Empty,
                    StateProvinceTerritory = shippingAddress.Address.StateProvinceTerritory,
                    City            = shippingAddress.Address.City,
                    Country         = shippingAddress.Address.Country,
                    CountyDistrict  = shippingAddress.Address.CountyDistrict,
                    IsPrimary       = shippingAddress.IsPrimary,
                    LastUpdatedDate = shippingAddress.Created,
                    Line1           = shippingAddress.Address.Line1,
                    Line2           = shippingAddress.Address.Line2,
                    Line3           = shippingAddress.Address.Line3,
                    Line4           = shippingAddress.Address.Line4,
                    NickName        = shippingAddress.Alias,
                    PersonCloudId   = string.Empty,
                    PostalCode      = shippingAddress.Address.PostalCode,
                };

                return(address);
            }
Esempio n. 11
0
        public override string GetDifferentHtmlFragment(string freightcode, ShippingAddress_V01 address)
        {
            string option = freightcode != null?freightcode.Trim() : freightcode;

            string[] FCandWh = GetFreightCodeAndWarehouseFromService(address);

            if (FCandWh != null)
            {
                if (FCandWh[0] == freightcode)
                {
                    return(string.Empty);
                }
                else
                {
                    return("NoExpressDelivery.html");
                }
            }
            else
            {
                return(string.Empty);
            }
        }
Esempio n. 12
0
        public override string[] GetFreightCodeAndWarehouse(ShippingAddress_V01 address)
        {
            var freightCodeAndWarehouse = new[]
            {
                HLConfigManager.Configurations.ShoppingCartConfiguration.DefaultFreightCode,
                HLConfigManager.Configurations.ShoppingCartConfiguration.DefaultWarehouse
            };

            if (address != null && address.Address != null &&
                !string.IsNullOrEmpty(address.Address.StateProvinceTerritory))
            {
                var freightCodesAndWarehouses = HttpRuntime.Cache[cacheKey] as Dictionary <string, string[]>;
                if (freightCodesAndWarehouses != null && freightCodesAndWarehouses.Count > 0 &&
                    freightCodesAndWarehouses.ContainsKey(address.Address.StateProvinceTerritory))
                {
                    var stored = freightCodesAndWarehouses.FirstOrDefault(i => i.Key == address.Address.StateProvinceTerritory);
                    freightCodeAndWarehouse[0] = stored.Value[0];
                    freightCodeAndWarehouse[1] = stored.Value[1];
                }
                else
                {
                    var freightCodeAndWarehouseFromService = GetFreightCodeAndWarehouseFromService(address.Address.StateProvinceTerritory);
                    if (freightCodeAndWarehouseFromService != null)
                    {
                        freightCodeAndWarehouse[0] = freightCodeAndWarehouseFromService[0] ?? freightCodeAndWarehouse[0];
                        freightCodeAndWarehouse[1] = freightCodeAndWarehouseFromService[1] ?? freightCodeAndWarehouse[1];
                    }
                    else
                    {
                        if (freightCodesAndWarehouses == null)
                        {
                            freightCodesAndWarehouses = new Dictionary <string, string[]>();
                        }
                        freightCodesAndWarehouses.Add(address.Address.StateProvinceTerritory, freightCodeAndWarehouse);
                    }
                }
            }
            return(freightCodeAndWarehouse);
        }
        public override List <DeliveryOption> GetDeliveryOptionsListForShipping(string country,
                                                                                string locale,
                                                                                ShippingAddress_V01 address)
        {
            var proxy   = ServiceClientProvider.GetShippingServiceProxy();
            var request = new DeliveryOptionForCountryRequest_V01();

            request.Country = country;
            request.State   = string.Empty;
            request.Locale  = locale;
            var response = proxy.GetDeliveryOptions(new GetDeliveryOptionsRequest(request)).GetDeliveryOptionsResult as ShippingAlternativesResponse_V01;
            var final    = new List <DeliveryOption>();

            foreach (ShippingOption_V01 option in response.DeliveryAlternatives)
            {
                var newOption = new DeliveryOption(option);
                newOption.Name = newOption.Description;
                final.Add(newOption);
            }

            return(final);
        }
        public override string FormatShippingAddress(ShippingAddress_V01 address,
                                                     DeliveryOptionType type,
                                                     string description,
                                                     bool includeName)
        {
            if (null == address || null == address.Address)
            {
                return(string.Empty);
            }

            if (type == DeliveryOptionType.Shipping)
            {
                return(includeName
                           ? string.Format("{0}<br/>{1}<br/>{2}, {3} {4}", address.Recipient ?? string.Empty,
                                           address.Address.Line1,
                                           address.Address.City, address.Address.StateProvinceTerritory,
                                           address.Address.PostalCode)
                           : string.Format("{0}<br/>{1}, {2} {3}",
                                           address.Address.Line1,
                                           address.Address.City, address.Address.StateProvinceTerritory,
                                           address.Address.PostalCode));
            }
            else if (type == DeliveryOptionType.PickupFromCourier)
            {
                string message  = HttpContext.GetGlobalResourceObject("MYHL_Rules", "ViewMap").ToString();
                string gAddress = string.Format("{0}+{1}+{2}+{3}", address.Address.Line1.Replace(" ", "+"), address.Address.City.Replace(" ", "+"), address.Address.StateProvinceTerritory.Replace(" ", "+"), address.Address.PostalCode.Replace(" ", "+"));
                return(string.Format("{0}<br/>{1}, {2} {3}<br/> <a href='http://maps.google.com/?q={4}' target='_blank'>{5}</a>",
                                     address.Address.Line1, address.Address.City,
                                     address.Address.StateProvinceTerritory,
                                     address.Address.PostalCode, gAddress, message));
            }
            else
            {
                return(string.Format("{0}<br/>{1}<br/>{2}, {3} {4}", description,
                                     address.Address.Line1, address.Address.City,
                                     address.Address.StateProvinceTerritory, address.Address.PostalCode));
            }
        }
        public override List <DeliveryOption> GetDeliveryOptionsListForShipping(string Country,
                                                                                string locale,
                                                                                ShippingAddress_V01 address)
        {
            var final = new List <DeliveryOption>();

            //HOME DELIVERY
            var HomeDeliveryOption      = new DeliveryOption();
            var FreightCodeAndWarehouse = GetFreightCodeAndWarehouse(address);

            HomeDeliveryOption.FreightCode = FreightCodeAndWarehouse[0].ToString();
            HomeDeliveryOption.Description = (string)HttpContext.GetGlobalResourceObject(string.Format("{0}_GlobalResources", HLConfigManager.Platform), "HomeDeliveryOption") ?? "";
            final.Add(HomeDeliveryOption);

            //PUDO (PICKUP)
            var PudoDeliveryOptions = getDeliveryOptionsForShipping(Country, address, locale);

            if (PudoDeliveryOptions != null && PudoDeliveryOptions.Count > 0)
            {
                final.AddRange(PudoDeliveryOptions);
            }
            return(final);
        }
Esempio n. 16
0
        public override List <DeliveryOption> GetDeliveryOptionsListForShipping(string Country,
                                                                                string locale,
                                                                                ShippingAddress_V01 address)
        {
            try
            {
                var final = new List <DeliveryOption>();
                if (string.IsNullOrEmpty(Country) || string.IsNullOrEmpty(locale) || null == address ||
                    string.IsNullOrEmpty(address.Address.PostalCode))
                {
                    return(final);
                }

                final = GetDeliveryOptionsFromCache(Country, locale, address);

                //final = ConvertShippingAlternativetoDeliveryOption(response);
                return(final);
            }
            catch
            {
                return(null);
            }
        }
Esempio n. 17
0
        public override string FormatShippingAddress(ShippingAddress_V01 address,
                                                     DeliveryOptionType type,
                                                     string description,
                                                     bool includeName)
        {
            if (null == address || address.Address == null)
            {
                return(string.Empty);
            }
            string formattedAddress = string.Empty;
            string stateName        = GetStateNameFromStateCode(address.Address.StateProvinceTerritory);

            if (type == DeliveryOptionType.Shipping)
            {
                formattedAddress = includeName
                                       ? string.Format("{0}<br>{1}<br>{2}{3}, {4}<br>{5}<br>{6}",
                                                       address.Recipient ?? string.Empty,
                                                       address.Address.Line1,
                                                       string.IsNullOrEmpty(address.Address.CountyDistrict) ? string.Empty : string.Format("{0}, ", address.Address.CountyDistrict), address.Address.City, stateName,
                                                       address.Address.PostalCode,
                                                       formatPhone(address.Phone))
                                       : string.Format("{0}<br>{1}{2}, {3}<br>{4}<br>{5}",
                                                       address.Address.Line1,
                                                       string.IsNullOrEmpty(address.Address.CountyDistrict) ? string.Empty : string.Format("{0}, ", address.Address.CountyDistrict), address.Address.City, stateName,
                                                       address.Address.PostalCode,
                                                       formatPhone(address.Phone));
            }
            else
            {
                formattedAddress = string.Format("{0}<br>{1}<br>{2}{3}, {4}<br>{5}",
                                                 description,
                                                 address.Address.Line1,
                                                 string.IsNullOrEmpty(address.Address.CountyDistrict) ? string.Empty : string.Format("{0}, ", address.Address.CountyDistrict), address.Address.City, stateName,
                                                 address.Address.PostalCode);
            }
            return(formattedAddress);
        }
        private static string[] GetFreightCodeAndWarehouseFromService(ShippingAddress_V01 address)
        {
            using (var proxy = ServiceClientProvider.GetShippingServiceProxy())
            {
                try
                {
                    string state = string.IsNullOrWhiteSpace(address.Address.CountyDistrict)
                                      ? string.Format("{0}|{1}", address.Address.StateProvinceTerritory,
                                                      address.Address.City)
                                      : string.Format("{0}|{1}|{2}", address.Address.StateProvinceTerritory,
                                                      address.Address.City, address.Address.CountyDistrict);
                    var request = new DeliveryOptionForCountryRequest_V01
                    {
                        Country = "CO",
                        State   = state,
                        Locale  = "es-CO"
                    };

                    var response = proxy.GetDeliveryOptions(new GetDeliveryOptionsRequest(request)).GetDeliveryOptionsResult as ShippingAlternativesResponse_V01;
                    if (response != null && response.DeliveryAlternatives != null &&
                        response.DeliveryAlternatives.Count > 0)
                    {
                        var shippingOption = response.DeliveryAlternatives.FirstOrDefault(o => o.IsDefault) != null?response.DeliveryAlternatives.FirstOrDefault(o => o.IsDefault) : response.DeliveryAlternatives.FirstOrDefault();

                        if (shippingOption != null)
                        {
                            return(new[] { shippingOption.FreightCode, shippingOption.WarehouseCode });
                        }
                    }
                }
                catch (Exception ex)
                {
                    LoggerHelper.Error(string.Format("GetFreightCodeAndWarehouseFromService error: Country: CO, error: {0}", ex.ToString()));
                }
            }
            return(null);
        }
        public override List <DeliveryOption> GetDeliveryOptionsListForShipping(string Country,
                                                                                string locale,
                                                                                ShippingAddress_V01 address)
        {
            var final         = new List <DeliveryOption>();
            var optionForCity = GetDeliveryOptionsListForShippingFromService(address);

            if (optionForCity == null)
            {
                var stdOption = new DeliveryOption
                {
                    FreightCode   = HLConfigManager.Configurations.ShoppingCartConfiguration.DefaultFreightCode,
                    WarehouseCode = HLConfigManager.Configurations.ShoppingCartConfiguration.DefaultWarehouse,
                    Description   = "Su pedido será enviado con el Servicio de Entrega Regular"
                };
                final.Add(stdOption);
            }
            else
            {
                final.Add(optionForCity);
            }

            return(final);
        }
        public override Address_V01 GetHFFDefaultAddress(ShippingAddress_V01 address)
        {
            var         member        = (MembershipUser <DistributorProfileModel>)Membership.GetUser();
            string      distributorId = (member != null) ? member.Value.Id : "";
            Address_V01 hffAddress    = new Address_V01();

            if (!string.IsNullOrEmpty(distributorId))
            {
                if (IsMemberTaxRegistered(distributorId))
                {
                    hffAddress = ObjectMappingHelper.Instance.GetToShipping(DistributorOrderingProfileProvider.GetAddress(ServiceProvider.OrderSvc.AddressType.PermanentLegalLocal, distributorId, "GR"));
                }
                else
                {
                    hffAddress = ObjectMappingHelper.Instance.GetToShipping(DistributorOrderingProfileProvider.GetAddress(ServiceProvider.OrderSvc.AddressType.MailingLocal, distributorId, "GR"));
                }
            }
            else  //if unable to retrieve DistributorId, do the default process
            {
                if (address != null && address.Address != null)
                {
                    hffAddress = new Address_V01
                    {
                        Country = address.Address.Country,
                        StateProvinceTerritory = address.Address.StateProvinceTerritory,
                        City       = address.Address.City,
                        Line1      = address.Address.Line1,
                        PostalCode = address.Address.PostalCode,
                    };
                }

                hffAddress = base.GetHFFDefaultAddress(address);
            }

            return(hffAddress);
        }
Esempio n. 21
0
        public override string FormatShippingAddress(ShippingAddress_V01 address, DeliveryOptionType type,
                                                     string description, bool includeName)
        {
            string formattedAddress;

            if (type == DeliveryOptionType.PickupFromCourier)
            {
                formattedAddress = includeName ?
                                   string.Format("{0}<br>{1},{2}<br>{3}, {4}, {5}<br>{6}", address.Address.Line4 ?? string.Empty,
                                                 address.Address.Line2, address.Address.Line1 ?? string.Empty,
                                                 address.Address.City, address.Address.StateProvinceTerritory,
                                                 address.Address.PostalCode,
                                                 formatPhone(address.Phone)) :
                                   string.Format("{0},{1}<br>{2}, {3}, {4}<br>{5}",
                                                 address.Address.Line2, address.Address.Line1 ?? string.Empty,
                                                 address.Address.City, address.Address.StateProvinceTerritory, address.Address.PostalCode,
                                                 formatPhone(address.Phone));
                return(formattedAddress);
            }
            else
            {
                return(base.FormatShippingAddress(address, type, description, includeName));
            }
        }
Esempio n. 22
0
        public ShippingInfo(DeliveryOption deliveryOption, ShippingAddress_V01 shippingAddress)
        {
            if (deliveryOption != null)
            {
                Id = deliveryOption.Id;

                Option               = deliveryOption.Option;
                FreightCode          = deliveryOption.FreightCode;
                WarehouseCode        = deliveryOption.WarehouseCode;
                Description          = deliveryOption.Description;
                Name                 = deliveryOption.Name;
                ShippingIntervalDays = deliveryOption.ShippingIntervalDays;
            }

            if (shippingAddress != null)
            {
                Address = CopyAddress(shippingAddress);
            }

            if (deliveryOption != null)
            {
                this.AdditionalInformation = deliveryOption.Information;
            }
        }
        /// <summary>
        ///     Get the freight and warehouse code for the address.
        /// </summary>
        /// <param name="address">Address.</param>
        /// <returns></returns>
        public override string[] GetFreightCodeAndWarehouse(ShippingAddress_V01 address)
        {
            var freightCodeAndWarehouse = new[]
            {
                HLConfigManager.Configurations.ShoppingCartConfiguration.DefaultFreightCode,
                HLConfigManager.Configurations.ShoppingCartConfiguration.DefaultWarehouse
            };

            if (null != address && null != address.Address)
            {
                string state = address.Address.StateProvinceTerritory;

                if (!string.IsNullOrEmpty(state))
                {
                    var freightCodeAndWarehouseFromService = GetFreightCodeAndWarehouseFromService(address);
                    if (freightCodeAndWarehouseFromService != null)
                    {
                        freightCodeAndWarehouse[0] = freightCodeAndWarehouseFromService[0] ?? freightCodeAndWarehouse[0];
                        freightCodeAndWarehouse[1] = freightCodeAndWarehouseFromService[1] ?? freightCodeAndWarehouse[1];
                    }
                }
            }
            return(freightCodeAndWarehouse);
        }
        public override string FormatShippingAddress(ShippingAddress_V01 address,
                                                     DeliveryOptionType type,
                                                     string description,
                                                     bool includeName)
        {
            if (null == address || address.Address == null)
            {
                return(string.Empty);
            }
            string formattedAddress = string.Empty;

            if (type == DeliveryOptionType.Shipping)
            {
                formattedAddress = includeName
                                       ? string.Format("{0}<br/>{1} {2}<br/>{3} {4}<br/>{5}",
                                                       address.Recipient ?? string.Empty,
                                                       address.Address.Line1, address.Address.Line2 ?? string.Empty,
                                                       address.Address.PostalCode, address.Address.City,
                                                       formatPhone(address.Phone))
                                       : string.Format("{0} {1}<br/>{2} {3}<br/>{4}", address.Address.Line1,
                                                       address.Address.Line2 ?? string.Empty, address.Address.PostalCode,
                                                       address.Address.City, formatPhone(address.Phone));
            }
            else
            {
                formattedAddress = string.Format("{0}<br/>{1} {2}<br/>{3} {4}<br/>{5}", description,
                                                 address.Address.Line1,
                                                 address.Address.Line2 ?? string.Empty, address.Address.PostalCode,
                                                 address.Address.City, address.Address.StateProvinceTerritory);
            }
            while (formattedAddress.IndexOf("  ") > -1)
            {
                formattedAddress = formattedAddress.Replace("  ", " ");
            }
            return(formattedAddress);
        }
Esempio n. 25
0
        private static List <DeliveryOption> GetDeliveryPickupAlternativesFromCache(ShippingAddress_V01 address)
        {
            var deliveryOptions = new List <DeliveryOption>();
            var cacheKey        = Get7ElevenCacheKey();
            var locations       = HttpRuntime.Cache[cacheKey] as Dictionary <string, List <DeliveryOption> >;

            var member = (MembershipUser <DistributorProfileModel>)Membership.GetUser();

            if (member == null || member.Value == null)
            {
                return(deliveryOptions);
            }

            var distributorId = member.Value.Id;

            if (locations == null || !locations.ContainsKey(distributorId))
            {
                if (locations == null)
                {
                    locations = new Dictionary <string, List <DeliveryOption> >();
                }
                var proxy = ServiceClientProvider.GetShippingServiceProxy();

                try
                {
                    var pickupAlternativesResponse =
                        proxy.GetDeliveryPickupAlternatives(new GetDeliveryPickupAlternativesRequest(new DeliveryPickupAlternativesRequest_V05()
                    {
                        CountryCode   = "TH",
                        DistributorId = distributorId
                    })).GetDeliveryPickupAlternativesResult as DeliveryPickupAlternativesResponse_V05;

                    if (pickupAlternativesResponse != null && pickupAlternativesResponse.DeliveryPickupAlternatives != null)
                    {
                        deliveryOptions.AddRange(from po in pickupAlternativesResponse.DeliveryPickupAlternatives select new DeliveryOption(po, true));
                        deliveryOptions.ForEach(po =>
                        {
                            po.DisplayName = string.Format("{0} #{1}", SevenElevenNickName, po.CourierStoreId);
                            po.Description = po.Name;
                        });
                    }

                    if (deliveryOptions.Any())
                    {
                        locations.Add(distributorId, deliveryOptions);
                        HttpRuntime.Cache.Insert(cacheKey, locations, null,
                                                 DateTime.Now.AddMinutes(SevenElevenCacheMinutes),
                                                 Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
                    }
                }
                catch (Exception ex)
                {
                    LoggerHelper.Error(
                        string.Format("GetDeliveryPickupAlternativesFromCache error: Country: TH, error: {0}",
                                      ex.Message));
                }
            }

            if (locations.ContainsKey(distributorId))
            {
                var locList = locations.FirstOrDefault(l => l.Key == distributorId);
                deliveryOptions = locList.Value;
            }
            return(deliveryOptions);
        }
Esempio n. 26
0
        public override List <DeliveryOption> GetDeliveryOptions(DeliveryOptionType type, ShippingAddress_V01 address)
        {
            if (type == DeliveryOptionType.PickupFromCourier)
            {
                return(GetDeliveryPickupAlternativesFromCache(address));
            }

            return(base.GetDeliveryOptions(type, address));
        }
        private static List <DeliveryOption> GetDeliveryOptionsFromCache(string locale, ShippingAddress_V01 address)
        {
            var deliveryOptions = HttpRuntime.Cache[PUPCacheKey] as List <DeliveryOption>;

            if (deliveryOptions == null)
            {
                deliveryOptions = GetDeliveryOptionsFromService(locale);
                SaveDeliveryOptionsToCache(deliveryOptions);
            }
            if (deliveryOptions == null)
            {
                return(null);
            }
            return(deliveryOptions.OrderBy(d => d.DisplayName).ToList());
        }
        private static List <ShippingOption_V01> GetDeliveryOptionsFromService(string Country, string locale, ShippingAddress_V01 address)
        {
            var final   = new List <DeliveryOption>();
            var proxy   = ServiceClientProvider.GetShippingServiceProxy();
            var request = new DeliveryOptionForCountryRequest_V01();

            request.Country = Country;
            request.State   = string.IsNullOrWhiteSpace(address.Address.CountyDistrict)
                                      ? string.Format("{0}|{1}", address.Address.StateProvinceTerritory,
                                                      address.Address.City)
                                      : string.Format("{0}|{1}|{2}", address.Address.StateProvinceTerritory,
                                                      address.Address.City, address.Address.CountyDistrict);
            request.Locale = locale;
            var response = proxy.GetDeliveryOptions(new GetDeliveryOptionsRequest(request)).GetDeliveryOptionsResult as ShippingAlternativesResponse_V01;

            return(response.DeliveryAlternatives);
        }
 public override List <DeliveryOption> GetDeliveryOptions(DeliveryOptionType type, ShippingAddress_V01 address)
 {
     if (type == DeliveryOptionType.PickupFromCourier)
     {
         if (address != null && address.Address != null && !string.IsNullOrEmpty(address.Address.StateProvinceTerritory))
         {
             HttpRuntime.Cache.Remove(PUPCacheKey);
         }
         return(GetDeliveryOptionsFromCache(System.Threading.Thread.CurrentThread.CurrentCulture.Name, address));
     }
     return(base.GetDeliveryOptions(type, address));
 }
        public override string FormatShippingAddress(ShippingAddress_V01 address,
                                                     DeliveryOptionType type,
                                                     string description,
                                                     bool includeName)
        {
            if (null == address || address.Address == null)
            {
                return(string.Empty);
            }
            string formattedAddress = string.Empty;

            if (type == DeliveryOptionType.Shipping)
            {
                address.Address.Line4 = address.Recipient;
                formattedAddress      = includeName
                                       ? string.Format("{0}<br>{1}{2}<br>{3}, {4}, {5}<br>{6}",
                                                       address.Recipient ?? string.Empty,
                                                       address.Address.Line1,
                                                       string.IsNullOrEmpty(address.Address.Line2)
                                                           ? string.Empty
                                                           : string.Format(",{0}", address.Address.Line2),
                                                       address.Address.City, address.Address.StateProvinceTerritory,
                                                       string.IsNullOrEmpty(address.Address.CountyDistrict)
                                                           ? string.Empty
                                                           : string.Format("{0}", address.Address.CountyDistrict),
                                                       //string.IsNullOrEmpty(address.Address.PostalCode)
                                                       //  ? string.Empty
                                                       //  : string.Format("{0}<br>", address.Address.PostalCode),
                                                       formatPhone(address.Phone))
                                       : string.Format("{0}{1}<br>{2}, {3}, {4}<br>{5}",
                                                       address.Address.Line1,
                                                       string.IsNullOrEmpty(address.Address.Line2)
                                                           ? string.Empty
                                                           : string.Format(",{0}", address.Address.Line2),
                                                       address.Address.City, address.Address.StateProvinceTerritory,
                                                       string.IsNullOrEmpty(address.Address.CountyDistrict)
                                                           ? string.Empty
                                                           : string.Format("{0}", address.Address.CountyDistrict),
                                                       formatPhone(address.Phone));
            }
            else if (type == DeliveryOptionType.PickupFromCourier)
            {
                formattedAddress = includeName ?
                                   string.Format("{0}<br>{1},{2}<br>{3}, {4}, {5}<br>{6}", address.Address.Line4 ?? string.Empty,
                                                 address.Address.Line2, address.Address.Line1 ?? string.Empty,
                                                 address.Address.City, address.Address.StateProvinceTerritory,
                                                 address.Address.CountyDistrict,
                                                 formatPhone(address.Phone)) :
                                   string.Format("{0},{1}<br>{2}, {3}, {4}<br>{5}",
                                                 address.Address.Line2, address.Address.Line1 ?? string.Empty,
                                                 address.Address.City, address.Address.StateProvinceTerritory, address.Address.CountyDistrict,
                                                 formatPhone(address.Phone));
            }
            else
            {
                formattedAddress = string.Format("{0}<br>{1}{2}<br>{3},{4}, {5}", description,
                                                 address.Address.Line1,
                                                 string.IsNullOrEmpty(address.Address.Line2)
                                                     ? string.Empty
                                                     : string.Format(",{0}", address.Address.Line2),
                                                 address.Address.City, address.Address.StateProvinceTerritory,
                                                 address.Address.CountyDistrict);
            }
            return(formattedAddress);
        }