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); }
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(); } }