public static void SetCustomerPrimaryAddress(int customerID, AddressType type) { if (type == AddressType.Main || type == AddressType.New) { return; } var addressesOnFile = ExigoDAL.GetCustomerAddresses(customerID) .Where(c => c.IsComplete); var oldPrimaryAddress = addressesOnFile .Where(c => c.AddressType == AddressType.Main) .FirstOrDefault(); var newPrimaryAddress = addressesOnFile .Where(c => c.AddressType == type) .FirstOrDefault(); if (oldPrimaryAddress == null || newPrimaryAddress == null) { return; } // Swap the addresses ExigoDAL.SetCustomerAddressOnFile(customerID, (Address)newPrimaryAddress, AddressType.Main); ExigoDAL.SetCustomerAddressOnFile(customerID, (Address)oldPrimaryAddress, type); }
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); }