コード例 #1
0
        public static VerifyAddressResponse VerifyAddress(Address address)
        {
            var result = new VerifyAddressResponse();

            result.OriginalAddress = address;
            result.IsValid         = false;

            try
            {
                if (address.Country.ToUpper() == "US" && address.IsComplete)
                {
                    var verifiedAddress = ExigoDAL.WebService().VerifyAddress(new VerifyAddressRequest
                    {
                        Address = address.AddressDisplay,
                        City    = address.City,
                        State   = address.State,
                        Zip     = address.Zip,
                        Country = address.Country
                    });

                    result.VerifiedAddress = new Address()
                    {
                        AddressType = address.AddressType,
                        Address1    = verifiedAddress.Address,
                        Address2    = string.Empty,
                        City        = verifiedAddress.City,
                        State       = verifiedAddress.State,
                        Zip         = verifiedAddress.Zip,
                        Country     = verifiedAddress.Country
                    };

                    result.IsValid = true;
                }
            }
            catch
            {
                return(result);
            }

            return(result);
        }
コード例 #2
0
        public ActionResult Shipping(ShippingAddress address, bool overrideValidation = false)
        {
            if (address.Country == "US")
            {
                // Validate the address
                var response = new ExigoService.VerifyAddressResponse()
                {
                    IsValid = false
                };
                if (!overrideValidation)
                {
                    response = Exigo.VerifyAddress(address as Address);

                    address.Address1 = address.Address1;
                    address.Address2 = address.Address2;
                    address.City = address.City;
                    address.State = address.State;
                    address.Zip = address.Zip;
                    address.Country = address.Country;

                    PropertyBag.ShippingAddress = address;
                    Exigo.PropertyBags.Update(PropertyBag);
                }

                if (response.IsValid || overrideValidation)
                {
                    if (!overrideValidation)
                    {
                        address.Address1 = response.VerifiedAddress.Address1;
                        address.Address2 = response.VerifiedAddress.Address2;
                        address.City = response.VerifiedAddress.City;
                        address.State = response.VerifiedAddress.State;
                        address.Zip = response.VerifiedAddress.Zip;
                        address.Country = response.VerifiedAddress.Country;

                        PropertyBag.ShippingAddress = address;
                    }
                    // Save the address to the customer's account if applicable
                    if (Request.IsAuthenticated && address.AddressType == AddressType.New)
                    {
                        Exigo.SetCustomerAddressOnFile(Identity.Customer.CustomerID, address as Address);
                    }

                    // If Auto Order Items are in Cart Ensure Defaults are set

                    if (ShoppingCart.Items.Where(c => c.Type == ShoppingCartItemType.AutoOrder).Count() > 0)
                    {
                        // Ensure we have a valid frequency type
                        if (!GlobalSettings.AutoOrders.AvailableFrequencyTypes.Contains(PropertyBag.AutoOrderFrequencyType))
                        {
                            PropertyBag.AutoOrderFrequencyType = Identity.Customer.Market.Configuration.AutoOrders.DefaultFrequencyType;
                        }

                        // Ensure we have a valid start date based on the frequency
                        if (PropertyBag.AutoOrderStartDate == DateTime.MinValue)
                        {
                            PropertyBag.AutoOrderStartDate = GlobalUtilities.GetNextAvailableAutoOrderStartDate(DateTime.Today.AddMonths(1)).ToLocalTime();
                        }

                    }

                    PropertyBag.ShippingAddress = address;
                    Exigo.PropertyBags.Update(PropertyBag);

                    return LogicProvider.GetNextAction();
                }
                else
                {

                    return RedirectToAction("Shipping", new { validate = "Unable to verify address" });
                }
            }
            else
            {
                // If Auto Order Items are in Cart Ensure Defaults are set

                if (ShoppingCart.Items.Where(c => c.Type == ShoppingCartItemType.AutoOrder).Count() > 0)
                {
                    // Ensure we have a valid frequency type
                    if (!GlobalSettings.AutoOrders.AvailableFrequencyTypes.Contains(PropertyBag.AutoOrderFrequencyType))
                    {
                        PropertyBag.AutoOrderFrequencyType = Identity.Customer.Market.Configuration.AutoOrders.DefaultFrequencyType;
                    }

                    // Ensure we have a valid start date based on the frequency
                    if (PropertyBag.AutoOrderStartDate == DateTime.MinValue)
                    {
                        PropertyBag.AutoOrderStartDate = GlobalUtilities.GetNextAvailableAutoOrderStartDate(DateTime.Today.AddMonths(1)).ToLocalTime();
                    }

                }

                PropertyBag.ShippingAddress = address;
                Exigo.PropertyBags.Update(PropertyBag);

                return LogicProvider.GetNextAction();
            }
        }