/// <summary>
        ///     ProcessAddShippingSubmit - click on continue on new shipping address
        /// </summary>
        /// <param name="button"></param>
        protected void ProcessAddShippingSubmit()
        {
            bool isNicknameEntered = false;

            string distributorID = DistributorID;
            string locale        = Locale;
            bool   toSession     = cbSaveThis.Checked ? false : true;

            WorkedUponAddress.ID = -1;
            IShippingProvider shippingProvider = (this.Page as ProductsBase).GetShippingProvider();

            var addressList = GetShippingAddressesFromDeliveryOptions(
                shippingProvider.GetShippingAddresses(distributorID, locale));

            // EMPTY IS ALLOWED OTHERWISE YOU COULD GET BUG 24224 for duplicates
            //  if (!this.txtNickname.Text.Equals(String.Empty))
            {
                WorkedUponAddress.Alias = txtNickname.Text.Trim();
                isNicknameEntered       = true;
            }

            try
            {
                //1) Submit validated chnages to Shippping Provider
                WorkedUponAddress.ID = ProductsBase.GetShippingProvider().SaveShippingAddress
                                           (distributorID, locale, WorkedUponAddress
                                           , toSession
                                           , true
                                           , isNicknameEntered);
            }
            finally
            {
            }

            if (WorkedUponAddress.ID == -2) //duplicateShippingAddress
            {
                trError.Visible = true;
                blErrors.Items.Add(
                    new ListItem(PlatformResources.GetGlobalResourceString("ErrorMessage", "AddressExists")));
                return;
            }
            if (WorkedUponAddress.ID == -3) //duplicateNickName
            {
                trError.Visible = true;
                blErrors.Items.Add(
                    new ListItem(PlatformResources.GetGlobalResourceString("ErrorMessage", "DuplicateAddressNickname")));
                return;
            }
            else
            {
                WorkedUponAddress.DisplayName = WorkedUponAddress.Alias == string.Empty
                                                    ? shippingProvider.GetAddressDisplayName(WorkedUponAddress)
                                                    : WorkedUponAddress.Alias;
                ShoppingCart.CopyInvoiceStatus = ServiceProvider.CatalogSvc.CopyInvoiceStatus.success;
                Session["IsCopingFromInvoice"] = null;
                OnShippingAddressCreated(this,
                                         new ShippingAddressEventArgs(distributorID, WorkedUponAddress, false, false));
                //popup_AddEditShippingControl.Hide();
            }
        }
        /// <summary>
        ///     ProcessEditShippingSubmit - click on continue on edit shipping address
        /// </summary>
        /// <param name="button"></param>
        protected void ProcessEditShippingSubmit()
        {
            string distributorID = DistributorID;
            string countryCode   = CountryCode;
            string locale        = Locale;
            bool   toSession     = cbSaveThis.Checked ? false : true;
            int    existingId;

            IShippingProvider shippingProvider = (Page as ProductsBase).GetShippingProvider();

            bool isNicknameEntered = false;
            var  addressList       = GetShippingAddressesFromDeliveryOptions(
                shippingProvider.GetShippingAddresses(distributorID, locale));

            //check for empty nickname in the addressList.
            //if (this.txtNickname.Text.Equals(String.Empty))
            //{
            //   bool isExists = addressList.Exists(l => l.Alias.Equals(this.txtNickname.Text.Trim()));

            //   if (isExists)
            //   {
            //       existingId = addressList.Find(l => l.Alias.Equals(this.txtNickname.Text.Trim())) == null ? 0 :
            //           addressList.Find(l => l.Alias.Equals(this.txtNickname.Text.Trim())).ID;
            //       if (!this.WorkedUponAddress.ID.Equals(existingId))
            //       {
            //           //check for duplicate address.
            //           if (ProductsBase.GetShippingProvider().duplicateShippingAddress(addressList, this.WorkedUponAddress))
            //           {
            //               this.trError.Visible = true;
            //               this.blErrors.Items.Add(new ListItem(PlatformResources.GetGlobalResourceString("ErrorMessage", "AddressExists")));
            //               return;
            //           }
            //       }
            //   }
            //}

            int saveWorkingID = WorkedUponAddress.ID;

            var existentAdd =
                addressList.Where(l => l.Alias != null && l.Alias.Equals(txtNickname.Text.Trim())).FirstOrDefault();

            existingId = (existentAdd != null) ? existentAdd.ID : 0;

            if (!WorkedUponAddress.ID.Equals(existingId))
            {
                isNicknameEntered = true;
            }

            WorkedUponAddress.Alias = txtNickname.Text.Trim();

            //1) Submit validated chnages to Shippping Provider
            WorkedUponAddress.ID = ProductsBase.GetShippingProvider().SaveShippingAddress
                                       (distributorID, locale, WorkedUponAddress
                                       , toSession
                                       , true
                                       , isNicknameEntered);

            if (WorkedUponAddress.ID == -2) //duplicateShippingAddress
            {
                trError.Visible = true;
                blErrors.Items.Add(
                    new ListItem(PlatformResources.GetGlobalResourceString("ErrorMessage", "AddressExists")));
                return;
            }
            if (WorkedUponAddress.ID == -3) //duplicateNickName
            {
                trError.Visible = true;
                blErrors.Items.Add(
                    new ListItem(PlatformResources.GetGlobalResourceString("ErrorMessage", "DuplicateAddressNickname")));

                // don't loose the ID , otherwise it will become an insert
                if (isNicknameEntered)
                {
                    WorkedUponAddress.ID    = saveWorkingID;
                    WorkedUponAddress.Alias = txtNickname.Text.Trim();
                }

                return;
            }
            else
            {
                WorkedUponAddress.DisplayName = WorkedUponAddress.Alias == string.Empty
                                                    ? shippingProvider.GetAddressDisplayName(WorkedUponAddress)
                                                    : WorkedUponAddress.Alias;

                ShoppingCart.CopyInvoiceStatus = ServiceProvider.CatalogSvc.CopyInvoiceStatus.success;
                Session["IsCopingFromInvoice"] = null;
                OnShippingAddressChanged(this,
                                         new ShippingAddressEventArgs(distributorID, WorkedUponAddress, false, false));
            }
        }