protected void SubscriptionGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            GridViewRow row = SubscriptionGrid.Rows[e.RowIndex];

            int          subscriptionId = (int)SubscriptionGrid.DataKeys[e.RowIndex].Value;
            Subscription subscription   = SubscriptionDataSource.Load(subscriptionId);

            if (subscription != null)
            {
                DropDownList AutoDeliveryInterval = row.FindControl("AutoDeliveryInterval") as DropDownList;
                if (AutoDeliveryInterval != null && !string.IsNullOrEmpty(AutoDeliveryInterval.SelectedValue))
                {
                    subscription.PaymentFrequency = AlwaysConvert.ToInt16(AutoDeliveryInterval.SelectedValue);
                    subscription.RecalculateNextOrderDueDate();
                    subscription.RecalculateExpiration();

                    try
                    {
                        EmailProcessor.NotifySubscriptionUpdated(subscription);
                    }
                    catch (Exception ex)
                    {
                        Logger.Error("Error sending subscription updated email.", ex);
                    }

                    subscription.Save();
                }
            }

            SubscriptionGrid.EditIndex = -1;
            e.Cancel = true;
        }
        protected void Page_Init(object sender, EventArgs e)
        {
            _subscriptionId        = AlwaysConvert.ToInt(Request.QueryString["SubscriptionId"]);
            _subscription          = SubscriptionDataSource.Load(_subscriptionId);
            CountryCode.DataSource = CountryDataSource.LoadAll("Name");
            CountryCode.DataBind();
            //INIT ADDRESS
            Address address = _subscription.GetShippingAddress();

            FirstName.Text  = address.FirstName;
            LastName.Text   = address.LastName;
            Company.Text    = address.Company;
            Address1.Text   = address.Address1;
            Address2.Text   = address.Address2;
            City.Text       = address.City;
            Province.Text   = address.Province;
            PostalCode.Text = address.PostalCode;
            ListItem selectedCountry = CountryCode.Items.FindByValue(AbleContext.Current.Store.DefaultWarehouse.CountryCode);

            if (!String.IsNullOrEmpty(address.CountryCode))
            {
                selectedCountry = CountryCode.Items.FindByValue(address.CountryCode.ToString());
            }
            if (selectedCountry != null)
            {
                CountryCode.SelectedIndex = CountryCode.Items.IndexOf(selectedCountry);
            }
            Phone.Text = address.Phone;
            Fax.Text   = address.Fax;
            Residence.SelectedIndex = (address.Residence ? 0 : 1);
        }
示例#3
0
        protected void SubscriptionGrid_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int          subscriptionId = AlwaysConvert.ToInt(e.CommandArgument);
            Subscription subscription   = SubscriptionDataSource.Load(subscriptionId);

            switch (e.CommandName)
            {
            case "Activate":
                subscription.Activate();
                SubscriptionGrid.DataBind();
                break;

            case "Deactivate":
                subscription.Deactivate();
                SubscriptionGrid.DataBind();
                break;

            case "CancelSubscription":
                subscription.Delete();
                SubscriptionGrid.DataBind();
                break;
            }

            BindSubscriptions();
        }
        protected void SubscriptionGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            int          subscriptionId = (int)SubscriptionGrid.DataKeys[e.RowIndex].Value;
            Subscription subscription   = SubscriptionDataSource.Load(subscriptionId);

            if (subscription != null)
            {
                subscription.ExpirationDate = AlwaysConvert.ToDateTime(e.NewValues["ExpirationDate"], DateTime.MinValue);
                subscription.Save();
            }
            SubscriptionGrid.EditIndex = -1;
            e.Cancel = true;
        }
示例#5
0
        protected void CancelButton_Click(object sender, EventArgs e)
        {
            List <DataKey> selectedItems = GetSelectedItems();

            foreach (DataKey item in selectedItems)
            {
                int          subscriptionId = AlwaysConvert.ToInt(item.Value);
                Subscription subscription   = SubscriptionDataSource.Load(subscriptionId);
                if (subscription != null)
                {
                    subscription.Delete();
                }
            }
            SubscriptionGrid.DataBind();
        }
        void control_OnEditBillAddress(object sender, SubscriptionDetailEventArgs e)
        {
            Subscription subscription = SubscriptionDataSource.Load(e.SubscriptionId);

            if (subscription != null)
            {
                HiddenSubscriptionId.Value = subscription.Id.ToString();
                EditCaption.Visible        = false;
                EditBillingCaption.Visible = true;
                HiddenIsShipping.Value     = "False";
                trIsBusiness.Visible       = false;
                InitAddressForm(subscription.GetBillingAddress());
                EditAddressPopup.Show();
            }
            else
            {
                HiddenSubscriptionId.Value = string.Empty;
            }
        }
示例#7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            _SubscriptionId = AlwaysConvert.ToInt(Request.QueryString["SubscriptionId"]);
            _Subscription   = SubscriptionDataSource.Load(_SubscriptionId);
            if (_Subscription == null)
            {
                Response.Redirect(AbleCommerce.Code.NavigationHelper.GetAdminUrl("Catalog/Browse.aspx"));
            }
            _returnUrl = GetReturnUrl();
            _Product   = _Subscription.Product;

            Caption.Text = string.Format(Caption.Text, _Product.Name);

            if (!Page.IsPostBack)
            {
                InitFormValues();
            }

            CancelButton.NavigateUrl = _returnUrl;
        }
示例#8
0
        /// <summary>
        /// Determines the product context for the current request.
        /// </summary>
        /// <returns>The product context for the current request.</returns>
        public static int GetProductId()
        {
            HttpRequest request = HttpContext.Current.Request;
            //CHECK FOR PRODUCT
            int productId = AlwaysConvert.ToInt(request.QueryString["ProductId"]);

            if (productId != 0)
            {
                return(productId);
            }
            //CHECK FOR PRODUCT ATTRIBUTE
            int optionId = AlwaysConvert.ToInt(request.QueryString["OptionId"]);

            if (optionId != 0)
            {
                //DETERMINE PRODUCT ID FROM ATTRIBUTE
                Option option = OptionDataSource.Load(optionId);
                if ((option != null) && (option.ProductOptions.Count > 0))
                {
                    return(option.ProductOptions[0].ProductId);
                }
            }

            // CHECK FOR SUBSCRIPTION ID
            int subscriptionId = AlwaysConvert.ToInt(request.QueryString["SubscriptionId"]);

            if (subscriptionId != 0)
            {
                Subscription subscription = SubscriptionDataSource.Load(subscriptionId);
                if (subscription != null)
                {
                    return(subscription.ProductId);
                }
            }
            //RETURN 0, PRODUCT COULD NOT BE DETERMINED
            return(0);
        }
        protected void SaveAddressButton_Click(object sender, EventArgs e)
        {
            Subscription subscription      = SubscriptionDataSource.Load(AlwaysConvert.ToInt(HiddenSubscriptionId.Value));
            bool         isShippingAddress = AlwaysConvert.ToBool(HiddenIsShipping.Value, false);

            if (Page.IsValid && subscription != null)
            {
                string buttonId = ((Button)sender).ID;
                string formattedProvinceName;
                if (ValidateProvince(Country, Province, Province2, out formattedProvinceName))
                {
                    string address1   = StringHelper.StripHtml(Address1.Text);
                    string address2   = StringHelper.StripHtml(Address2.Text);
                    string city       = StringHelper.StripHtml(City.Text);
                    string postalCode = StringHelper.StripHtml(PostalCode.Text);

                    if (isShippingAddress)
                    {
                        subscription.ShipToFirstName   = StringHelper.StripHtml(FirstName.Text);
                        subscription.ShipToLastName    = StringHelper.StripHtml(LastName.Text);
                        subscription.ShipToAddress1    = address1;
                        subscription.ShipToAddress2    = address2;
                        subscription.ShipToCompany     = StringHelper.StripHtml(Company.Text);
                        subscription.ShipToCity        = city;
                        subscription.ShipToProvince    = formattedProvinceName;
                        subscription.ShipToPostalCode  = postalCode;
                        subscription.ShipToCountryCode = Country.SelectedValue;
                        subscription.ShipToPhone       = StringHelper.StripHtml(Phone.Text);
                        subscription.ShipToFax         = StringHelper.StripHtml(Fax.Text);
                        subscription.ShipToResidence   = !IsBusiness.Checked;

                        try
                        {
                            EmailProcessor.NotifySubscriptionUpdated(subscription);
                        }
                        catch (Exception ex)
                        {
                            Logger.Error("Error sending subscription updated email.", ex);
                        }

                        subscription.Save();
                    }
                    else
                    {
                        subscription.BillToFirstName   = StringHelper.StripHtml(FirstName.Text);
                        subscription.BillToLastName    = StringHelper.StripHtml(LastName.Text);
                        subscription.BillToAddress1    = address1;
                        subscription.BillToAddress2    = address2;
                        subscription.BillToCompany     = StringHelper.StripHtml(Company.Text);
                        subscription.BillToCity        = city;
                        subscription.BillToProvince    = formattedProvinceName;
                        subscription.BillToPostalCode  = postalCode;
                        subscription.BillToCountryCode = Country.SelectedValue;
                        subscription.BillToPhone       = StringHelper.StripHtml(Phone.Text);
                        subscription.BillToFax         = StringHelper.StripHtml(Fax.Text);
                        subscription.BillToResidence   = !IsBusiness.Checked;

                        try
                        {
                            EmailProcessor.NotifySubscriptionUpdated(subscription);
                        }
                        catch (Exception ex)
                        {
                            Logger.Error("Error sending subscription updated email.", ex);
                        }

                        subscription.Save();
                    }

                    //REBUILD ADDRESS BOOK
                    InitAddressForm(null);
                    EditAddressPopup.Hide();
                }
                else
                {
                    Province2Required.IsValid = false;
                    CountryChanged(null, null);
                }
            }
        }