Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }