public static Address SetCustomerAddressOnFile(int customerID, Address address, AddressType type) { var saveAddress = false; var request = new UpdateCustomerRequest(); request.CustomerID = customerID; // Attempt to validate the user's entered address if US address address = GlobalUtilities.ValidateAddress(address) as Address; // New Addresses if (type == AddressType.New) { return(ExigoDAL.SaveNewCustomerAddress(customerID, address)); } // Main address if (type == AddressType.Main) { saveAddress = true; request.MainAddress1 = address.Address1; request.MainAddress2 = address.Address2 ?? string.Empty; request.MainCity = address.City; request.MainState = address.State; request.MainZip = address.Zip; request.MainCountry = address.Country; } // Mailing address if (type == AddressType.Mailing) { saveAddress = true; request.MailAddress1 = address.Address1; request.MailAddress2 = address.Address2 ?? string.Empty; request.MailCity = address.City; request.MailState = address.State; request.MailZip = address.Zip; request.MailCountry = address.Country; } // Other address if (type == AddressType.Other) { saveAddress = true; request.OtherAddress1 = address.Address1; request.OtherAddress2 = address.Address2 ?? string.Empty; request.OtherCity = address.City; request.OtherState = address.State; request.OtherZip = address.Zip; request.OtherCountry = address.Country; } if (saveAddress) { ExigoDAL.WebService().UpdateCustomer(request); ExigoDAL.PurgeCustomer(customerID); } return(address); }
public static Address SaveNewCustomerAddress(int customerID, Address address) { var addressesOnFile = ExigoDAL.GetCustomerAddresses(customerID).Where(c => c.IsComplete); // Do any of the addresses on file match the one we are using? // If not, save this address to the next available slot if (!addressesOnFile.Any(c => c.Equals(address))) { var saveAddress = false; var request = new UpdateCustomerRequest(); request.CustomerID = customerID; // Main address if (!addressesOnFile.Any(c => c.AddressType == AddressType.Main)) { saveAddress = true; address.AddressType = AddressType.Main; request.MainAddress1 = address.Address1; request.MainAddress2 = address.Address2; request.MainCity = address.City; request.MainState = address.State; request.MainZip = address.Zip; request.MainCountry = address.Country; } // Mailing address else if (!addressesOnFile.Any(c => c.AddressType == AddressType.Mailing)) { saveAddress = true; address.AddressType = AddressType.Mailing; request.MailAddress1 = address.Address1; request.MailAddress2 = address.Address2; request.MailCity = address.City; request.MailState = address.State; request.MailZip = address.Zip; request.MailCountry = address.Country; } // Other address else { saveAddress = true; address.AddressType = AddressType.Other; request.OtherAddress1 = address.Address1; request.OtherAddress2 = address.Address2; request.OtherCity = address.City; request.OtherState = address.State; request.OtherZip = address.Zip; request.OtherCountry = address.Country; } if (saveAddress) { ExigoDAL.WebService().UpdateCustomer(request); ExigoDAL.PurgeCustomer(customerID); } } return(address); }