protected void Page_PreRender(object sender, EventArgs e)
        {
            if (_EmailListId == 0)
            {
                this.Visible = false;
                return;
            }

            EmailList emailList = EmailListDataSource.Load(_EmailListId);

            if (emailList == null)
            {
                this.Visible = false;
                return;
            }

            CaptionLabel.Text = this.Caption;
            if (!AbleContext.Current.User.IsAnonymous && !String.IsNullOrEmpty(AbleContext.Current.User.Email))
            {
                UserEmail.Text = AbleContext.Current.User.Email;
            }

            InstructionsText.Text = string.Format(InstructionsText.Text, emailList.Name);
            this.Visible          = true;
        }
 protected void EmailListGrid_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName.Equals("Delete"))
     {
         EmailListDataSource.Delete(AlwaysConvert.ToInt(e.CommandArgument.ToString()));
     }
 }
        protected void Page_Load(object sender, EventArgs e)
        {
            _EmailListId = AlwaysConvert.ToInt(Request.QueryString["EmailListId"]);
            _EmailList   = EmailListDataSource.Load(_EmailListId);
            if (_EmailList == null)
            {
                Response.Redirect("Default.aspx");
            }
            if (!Page.IsPostBack)
            {
                Caption.Text = string.Format(Caption.Text, _EmailList.Name);
                EmailListUsersCaption.Text = string.Format(EmailListUsersCaption.Text, _EmailList.Name);
                SearchUsersGrid.Visible    = false;
                if (Request.UrlReferrer.AbsolutePath.EndsWith("ManageList.aspx"))
                {
                    FinishLink.NavigateUrl = "ManageList.aspx?EmailListId=" + _EmailListId;
                }
            }

            AlphabetRepeater.DataSource = GetAlphabetDS();
            AlphabetRepeater.DataBind();
            AbleCommerce.Code.PageHelper.SetDefaultButton(SearchEmail, SearchButton.ClientID);
            IList <Group> storeGroups = GroupDataSource.LoadAll();

            SearchGroup.DataSource     = storeGroups;
            SearchGroup.DataTextField  = "Name";
            SearchGroup.DataValueField = "GroupId";
            SearchGroup.DataBind();
        }
        protected void SaveButton_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                // DETERMINE SELECTED LISTS
                List <int> offList = new List <int>();
                List <int> onList  = new List <int>();
                int        index   = 0;
                foreach (RepeaterItem item in dlEmailLists.Items)
                {
                    int      tempListId = AlwaysConvert.ToInt(((HiddenField)item.FindControl("EmailListId")).Value);
                    CheckBox selected   = (CheckBox)item.FindControl("Selected");
                    if ((selected != null) && (selected.Checked))
                    {
                        onList.Add(tempListId);
                    }
                    else
                    {
                        offList.Add(tempListId);
                    }
                    index++;
                }
                string email = AbleContext.Current.User.Email;

                // PROCESS LISTS THAT SHOULD NOT BE SUBSCRIBED
                foreach (int emailListId in offList)
                {
                    EmailListUser elu = EmailListUserDataSource.Load(emailListId, email);
                    if (elu != null)
                    {
                        elu.Delete();
                    }
                }

                // PROCESS LISTS THAT SHOULD BE SUBSCRIBED
                foreach (int emailListId in onList)
                {
                    EmailListUser elu = EmailListUserDataSource.Load(emailListId, email);
                    if (elu == null)
                    {
                        EmailList list = EmailListDataSource.Load(emailListId);
                        if (list != null)
                        {
                            list.ProcessSignupRequest(email);
                        }
                    }
                }

                // DISPLAY RESULT
                ConfirmationMsg.Visible = true;
            }
        }
        protected void UpdateButton_Click(object sender, EventArgs e)
        {
            List <int> offList = new List <int>();
            List <int> onList  = new List <int>();
            //LOOP THROUGH SIGNUP LIST
            int index = 0;

            foreach (DataListItem item in dlEmailLists.Items)
            {
                int      tempListId = (int)dlEmailLists.DataKeys[index];
                CheckBox selected   = (CheckBox)item.FindControl("Selected");
                if ((selected != null) && (selected.Checked))
                {
                    onList.Add(tempListId);
                }
                else
                {
                    offList.Add(tempListId);
                }
                index++;
            }
            string email = AbleContext.Current.User.Email;

            //PROCESS LISTS THAT SHOULD NOT BE SUBSCRIBED
            foreach (int emailListId in offList)
            {
                EmailListUser elu = EmailListUserDataSource.Load(emailListId, email);
                if (elu != null)
                {
                    elu.Delete();
                }
            }
            //PROCESS LISTS THAT SHOULD BE SUBSCRIBED
            IDatabaseSessionManager database = AbleContext.Current.Database;

            database.BeginTransaction();
            foreach (int emailListId in onList)
            {
                EmailListUser elu = EmailListUserDataSource.Load(emailListId, email);
                if (elu == null)
                {
                    EmailList list = EmailListDataSource.Load(emailListId);
                    if (list != null)
                    {
                        list.ProcessSignupRequest(email);
                    }
                }
            }
            //DISPLAY CONFIRMATION
            UpdatedMessage.Visible = true;
            database.CommitTransaction();
        }
        private void UpdateEmailLists()
        {
            // DETERMINE SELECTED LISTS
            List <int> offList = new List <int>();
            List <int> onList  = new List <int>();
            int        index   = 0;

            foreach (DataListItem item in dlEmailLists.Items)
            {
                int      tempListId = (int)dlEmailLists.DataKeys[index];
                CheckBox selected   = (CheckBox)item.FindControl("Selected");
                if ((selected != null) && (selected.Checked))
                {
                    onList.Add(tempListId);
                }
                else
                {
                    offList.Add(tempListId);
                }
                index++;
            }
            string email = AbleContext.Current.User.Email;

            // PROCESS LISTS THAT SHOULD NOT BE SUBSCRIBED
            foreach (int emailListId in offList)
            {
                EmailListUser elu = EmailListUserDataSource.Load(emailListId, email);
                if (elu != null)
                {
                    elu.Delete();
                }
            }

            // PROCESS LISTS THAT SHOULD BE SUBSCRIBED
            IDatabaseSessionManager database = AbleContext.Current.Database;

            database.BeginTransaction();
            foreach (int emailListId in onList)
            {
                EmailListUser elu = EmailListUserDataSource.Load(emailListId, email);
                if (elu == null)
                {
                    EmailList list = EmailListDataSource.Load(emailListId);
                    if (list != null)
                    {
                        list.ProcessSignupRequest(email);
                    }
                }
            }
            database.CommitTransaction();
        }
        private IList <EmailList> GetPublicEmailLists()
        {
            IList <EmailList> publicLists = new List <EmailList>();
            IList <EmailList> allLists    = EmailListDataSource.LoadAll();

            foreach (EmailList list in allLists)
            {
                if (list.IsPublic)
                {
                    publicLists.Add(list);
                }
            }
            return(publicLists);
        }
Exemple #8
0
        /// <summary>
        /// Save this User object to database
        /// </summary>
        /// <returns><b>SaveResult</b> enumeration that represents the result of the save operation.</returns>
        public virtual SaveResult Save()
        {
            //IF USERNAME IS GUID, THIS IS AN ANONYMOUS USER
            this.IsAnonymous = (CommerceBuilder.Utility.AlwaysConvert.ToGuid(this.UserName) != Guid.Empty);
            //CHECK WHETHER WE ARE SAVING AN EXISTING USER
            if (this.UserId > 0)
            {
                //GET THE EMAIL VALUE STORED IN DATABASE
                string existingEmail = UserDataSource.GetEmail(this.UserId).ToLowerInvariant();
                string newEmail      = this.Email.ToLowerInvariant();
                //SEE WHETHER THE NEW AND EXISTING EMAILS MATCH
                if (newEmail != existingEmail)
                {
                    //EMAILS ARE DIFFERENT, IS THE NEW EMAIL VALID?
                    bool newAddressValid = ValidationHelper.IsValidEmail(newEmail);
                    //GET ALL EMAIL LISTS ASSOCIATED WITH EXISTING ADDRESS
                    EmailListCollection emailLists = EmailListDataSource.LoadForEmail(existingEmail);
                    //LOOP THE LISTS
                    foreach (EmailList list in emailLists)
                    {
                        //REMOVE EXISTING ADDRESS FROM LISTS
                        EmailListUser elu = list.RemoveMember(existingEmail);
                        //IF NEW ADDRESS WAS VALID RE-ADD TO SAME LIST
                        if (newAddressValid && (elu != null))
                        {
                            list.AddMember(newEmail, elu.SignupDate, elu.SignupIP);
                        }
                    }

                    //if the user is registered and the new email address is also valid
                    if (newAddressValid && !this.IsAnonymous)
                    {
                        OrderCollection orders = OrderDataSource.LoadForUser(this.UserId);
                        foreach (Order order in orders)
                        {
                            if (order.BillToEmail.ToLowerInvariant() == existingEmail)
                            {
                                order.BillToEmail = newEmail;
                                order.Save();
                            }
                        }
                    }
                }

                // ENSURE THE AFFILIATE ASSOCIATION IS VALID
                this.ValidateAffiliate();
            }
            return(this.BaseSave());;
        }
        protected void SubscribeButton_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                if (_EmailListId == 0)
                {
                    return;
                }

                EmailList emailList = EmailListDataSource.Load(_EmailListId);
                if (emailList != null)
                {
                    string email             = UserEmail.Text;
                    bool   subscribedNow     = false;
                    bool   alreadySubscribed = false;
                    if (emailList.IsMember(email))
                    {
                        alreadySubscribed = true;
                    }
                    else
                    {
                        //subscribe this user to this email list
                        //emailList.EmailListUsers.Add(new EmailListUser(emailList.EmailListId, userId));
                        //emailList.EmailListUsers.Save();
                        emailList.ProcessSignupRequest(email);
                        subscribedNow = true;
                    }
                    if (subscribedNow)
                    {
                        if (emailList.SignupRule == EmailListSignupRule.ConfirmedOptIn)
                        {
                            SubscribedMessage.Text    = string.Format(SubscribedMessage.Text, email, emailList.Name);
                            SubscribedMessage.Visible = true;
                        }
                        else
                        {
                            VerificationRequiredMessage.Text    = string.Format(VerificationRequiredMessage.Text, email);
                            VerificationRequiredMessage.Visible = true;
                        }
                    }
                    else if (alreadySubscribed)
                    {
                        SubscribedMessage.Text    = string.Format("The email '{0}' is already subscribed to '{1}'.", email, emailList.Name);
                        SubscribedMessage.Visible = true;
                    }
                }
            }
        }
        protected void Page_Init(object sender, EventArgs e)
        {
            _Store    = AbleContext.Current.Store;
            _Settings = _Store.Settings;

            // INITIALIZE GENERAL SETTINGS
            DefaultAddress.Text      = _Settings.DefaultEmailAddress;
            SubscriptionAddress.Text = _Settings.SubscriptionEmailAddress;
            SubscriptionRequestExpirationDays.Text = _Settings.SubscriptionRequestExpirationDays.ToString();

            // BIND THE SEND TO FRIEND SELECTBOX
            IList <EmailTemplate> templates = EmailTemplateDataSource.LoadAll();

            EmailTemplatesList.DataSource = templates;
            EmailTemplatesList.DataBind();

            ContactUsEmailTemplatesList.DataSource = templates;
            ContactUsEmailTemplatesList.DataBind();

            // BIND EMAIL TEMPLATES FOR ABANDONED BASKETS ALERT
            AbandonedBasketEmailTemplateList.DataSource = templates;
            AbandonedBasketEmailTemplateList.DataBind();

            // BIND THE DEFAULT EMAIL LIST SELECTBOX
            IList <EmailList> emailLists = EmailListDataSource.LoadAll();

            DefaultEmailList.DataSource = emailLists;
            DefaultEmailList.DataBind();

            // INITIALIZE SERVER CONFIGURATION
            SmtpServer.Text = _Settings.SmtpServer;
            if (String.IsNullOrEmpty(_Settings.SmtpPort))
            {
                SmtpPort.Text = "25";
            }
            else
            {
                SmtpPort.Text = _Settings.SmtpPort;
            }
            SmtpEnableSSL.Checked = _Settings.SmtpEnableSSL;
            SmtpUserName.Text     = _Settings.SmtpUserName;
            RequiresAuth.Checked  = _Settings.SmtpRequiresAuthentication;

            // DISABLE SCROLLING DURING VALIDATION
            AbleCommerce.Code.PageHelper.DisableValidationScrolling(this.Page);
        }
Exemple #11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            _EmailListId = AlwaysConvert.ToInt(Request.QueryString["EmailListId"]);
            _EmailList   = EmailListDataSource.Load(_EmailListId);
            if (_EmailList != null)
            {
                AbleCommerce.Code.PageHelper.ConvertEnterToTab(Name);
                if (!Page.IsPostBack)
                {
                    Name.Text        = _EmailList.Name;
                    IsPublic.Checked = _EmailList.IsPublic;
                    Description.Text = _EmailList.Description;
                    ListItem item = SignupRule.Items.FindByValue(_EmailList.SignupRule.ToString());
                    if (item != null)
                    {
                        SignupRule.SelectedIndex = SignupRule.Items.IndexOf(item);
                    }

                    IList <EmailTemplate> emailTemplates = EmailTemplateDataSource.LoadAll();
                    foreach (EmailTemplate template in emailTemplates)
                    {
                        ListItem li = new ListItem(template.Name, template.Id.ToString());
                        SignupEmailTemplate.Items.Add(li);
                    }

                    item = SignupEmailTemplate.Items.FindByValue(_EmailList.SignupEmailTemplateId.ToString());
                    if (item != null)
                    {
                        SignupEmailTemplate.SelectedIndex = SignupEmailTemplate.Items.IndexOf(item);
                    }
                }
            }
            else
            {
                this.Controls.Clear();
            }
        }
Exemple #12
0
 protected void Page_Load(object sender, EventArgs e)
 {
     _EmailListId = AlwaysConvert.ToInt(Request.QueryString["EmailListId"]);
     _EmailList   = EmailListDataSource.Load(_EmailListId);
     if (_EmailList == null)
     {
         Response.Redirect("Default.aspx");
     }
     if (!Page.IsPostBack)
     {
         Caption.Text = string.Format(Caption.Text, _EmailList.Name);
         int userCount = EmailListUserDataSource.CountForEmailList(_EmailListId);
         Members.Text = userCount.ToString();
         ManageMembersLink.NavigateUrl += "?EmailListId=" + _EmailListId.ToString();
         if (userCount > 0)
         {
             ExportUsersLink.NavigateUrl += "?EmailListId=" + _EmailListId.ToString();
             ExportEmailLink.NavigateUrl += "?EmailListId=" + _EmailListId.ToString();
             SendMessageLink.NavigateUrl += "?EmailListId=" + _EmailListId.ToString() + "&ReturnUrl=" + Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("~/Admin/Marketing/Email/ManageList.aspx?EmailListId=" + _EmailListId.ToString()));
         }
         else
         {
             ExportUsersLink.Visible = false;
             ExportEmailLink.Visible = false;
             SendMessageLink.Visible = false;
         }
         if (_EmailList.LastSendDate == null || _EmailList.LastSendDate.Equals(DateTime.MinValue))
         {
             LastSendDate.Text = "No mail sent yet.";
         }
         else
         {
             LastSendDate.Text = string.Format(LastSendDate.Text, _EmailList.LastSendDate);
         }
     }
     EditEmailListDialog1.ItemUpdated += new PersistentItemEventHandler(EditEmailListDialog1_ItemUpdated);
 }
Exemple #13
0
        /// <summary>
        /// Locate the datasource that determines the message recipients
        /// </summary>
        private void LocateRecipientSource()
        {
            // LOCATE AN IDLIST FROM SESSION DATA
            string sessionIdList = string.Empty;

            // GIVE PRECEDENCE TO QUERYSTRING REQUESTS
            if (!String.IsNullOrEmpty(Request.QueryString["OrderId"]) || !String.IsNullOrEmpty(Request.QueryString["OrderNumber"]))
            {
                // OBTAIN ORDER ID FROM QUERY STRING
                int orderId = AbleCommerce.Code.PageHelper.GetOrderId();
                sessionIdList = "OrderId:" + orderId.ToString();
            }
            else if (!String.IsNullOrEmpty(Request.QueryString["EmailListId"]))
            {
                // OBTAIN EMAIL LIST ID FROM QUERY STRING
                int emailListId = AlwaysConvert.ToInt(Request.QueryString["EmailListId"]);
                _EmailList = EmailListDataSource.Load(emailListId);
            }
            else if (!string.IsNullOrEmpty(Request.QueryString["UserId"]))
            {
                // OBTAIN USER ID FROM QUERY STRING
                int userId = AlwaysConvert.ToInt(Request.QueryString["UserId"]);
                sessionIdList = "UserId:" + userId.ToString();
            }

            // IF QUERYSTRING VALUES WERE NOT FOUND, LOOK FOR VALUES IN SESSION
            if (string.IsNullOrEmpty(sessionIdList) && Session["SendMail_IdList"] != null)
            {
                sessionIdList = Session["SendMail_IdList"].ToString();
            }

            // ATTEMPT TO PARSE DATASET
            if (!string.IsNullOrEmpty(sessionIdList))
            {
                Match idListMatch = Regex.Match(sessionIdList, @"^(UserId|SubscriptionId|OrderId):(\d+(?:,\d+)*)$", RegexOptions.IgnoreCase);
                if (idListMatch.Success)
                {
                    string idList = idListMatch.Groups[2].Value;
                    switch (idListMatch.Groups[1].Value.ToLowerInvariant())
                    {
                    case "userid":
                        ParseUserIdList(idList);
                        break;

                    case "subscriptionid":
                        ParseSubscriptionIdList(idList);
                        break;

                    case "orderid":
                        ParseOrderIdList(idList);
                        break;
                    }
                }
            }

            // VERIFY A DATASET WAS FOUND, IF NOT RETURN TO CALLING PAGE
            bool foundUserList         = (_UserList != null && _UserList.Count > 0);
            bool foundEmailList        = (_EmailList != null && _EmailList.Users.Count > 0);
            bool foundSubscriptionList = (_SubscriptionList != null && _SubscriptionList.Count > 0);
            bool foundOrderList        = (_OrderList != null && _OrderList.Count > 0);
            bool foundRecipientSource  = (foundUserList || foundEmailList || foundSubscriptionList || foundOrderList);

            if (!foundRecipientSource)
            {
                RedirectMe();
            }
        }
Exemple #14
0
        private void ProcessRules(BreadCrumbItem breadCrumbItem)
        {
            int id;

            if (breadCrumbItem.Url == "#")
            {
                return;
            }
            switch (breadCrumbItem.Url.ToLowerInvariant())
            {
            case "~/admin/orders/shipments/editshipment.aspx":
                id = AlwaysConvert.ToInt(Request.QueryString["OrderShipmentId"]);
                breadCrumbItem.Url  += "?OrderShipmentId=" + id;
                breadCrumbItem.Title = string.Format(breadCrumbItem.Title, id);
                break;

            case "~/admin/products/editproduct.aspx":
            case "~/admin/products/variants/variants.aspx":
            case "~/admin/products/variants/options.aspx":
            case "~/admin/products/digitalgoods/digitalgoods.aspx":
            case "~/admin/products/kits/editkit.aspx":
            case "~/admin/products/assets/images.aspx":
            case "~/admin/products/editproducttemplate.aspx":
            case "~/admin/products/specials/default.aspx":
                int categoryId = AbleCommerce.Code.PageHelper.GetCategoryId();
                id = AbleCommerce.Code.PageHelper.GetProductId();
                Product product = ProductDataSource.Load(id);
                if (categoryId > 0)
                {
                    breadCrumbItem.Url += "?CategoryId=" + categoryId + "&ProductId=" + id;
                }
                else
                {
                    breadCrumbItem.Url += "?ProductId=" + id;
                }
                breadCrumbItem.Title = string.Format(breadCrumbItem.Title, product.Name);
                break;

            case "~/admin/orders/vieworder.aspx":
            case "~/admin/orders/edit/editorderitems.aspx":
            case "~/admin/orders/viewdigitalgoods.aspx":
            case "~/admin/orders/payments/default.aspx":
            case "~/admin/orders/shipments/default.aspx":
                id = AbleCommerce.Code.PageHelper.GetOrderId();
                Order order = OrderDataSource.Load(id);
                breadCrumbItem.Url  += "?OrderNumber=" + order.OrderNumber;
                breadCrumbItem.Title = string.Format(breadCrumbItem.Title, order.OrderNumber);
                break;

            case "~/admin/marketing/coupons/editcoupon.aspx":
                id = AlwaysConvert.ToInt(Request.QueryString["CouponId"]);
                Coupon coupon = CouponDataSource.Load(id);
                breadCrumbItem.Url  += "?CouponId=" + id;
                breadCrumbItem.Title = string.Format(breadCrumbItem.Title, coupon.Name);
                break;

            case "~/admin/products/variants/editoption.aspx":
            case "~/admin/products/variants/editchoices.aspx":
                id = AlwaysConvert.ToInt(Request.QueryString["OptionId"]);
                Option option = OptionDataSource.Load(id);
                breadCrumbItem.Url  += "?OptionId=" + id;
                breadCrumbItem.Title = string.Format(breadCrumbItem.Title, option.Name);
                break;

            case "~/admin/products/giftwrap/editwrapgroup.aspx":
                id = AlwaysConvert.ToInt(Request.QueryString["WrapGroupId"]);
                WrapGroup wrapGroup = WrapGroupDataSource.Load(id);
                breadCrumbItem.Url  += "?WrapGroupId=" + id;
                breadCrumbItem.Title = string.Format(breadCrumbItem.Title, wrapGroup.Name);
                break;

            case "~/admin/marketing/email/managelist.aspx":
                id = AlwaysConvert.ToInt(Request.QueryString["EmailListId"]);
                EmailList emailList = EmailListDataSource.Load(id);
                if (emailList != null)
                {
                    breadCrumbItem.Url  += "?EmailListId=" + id;
                    breadCrumbItem.Title = string.Format(breadCrumbItem.Title, emailList.Name);
                }
                break;

            case "~/admin/marketing/discounts/editdiscount.aspx":
                id = AlwaysConvert.ToInt(Request.QueryString["VolumeDiscountId"]);
                VolumeDiscount discount = VolumeDiscountDataSource.Load(id);
                breadCrumbItem.Url  += "?VolumeDiscountId=" + id;
                breadCrumbItem.Title = string.Format(breadCrumbItem.Title, discount.Name);
                break;

            case "~/admin/catalog/editwebpage.aspx":
                id = AbleCommerce.Code.PageHelper.GetWebpageId();
                Webpage webpage = WebpageDataSource.Load(id);
                breadCrumbItem.Url  += "?WebpageId=" + id;
                breadCrumbItem.Title = string.Format(breadCrumbItem.Title, webpage.Name);
                break;

            case "~/admin/catalog/editLink.aspx":
                id = AbleCommerce.Code.PageHelper.GetLinkId();
                Link link = LinkDataSource.Load(id);
                breadCrumbItem.Url  += "?LinkId=" + id;
                breadCrumbItem.Title = string.Format(breadCrumbItem.Title, link.Name);
                break;

            case "~/admin/people/users/edituser.aspx":
                id = AlwaysConvert.ToInt(Request.QueryString["UserId"]);
                User user = UserDataSource.Load(id);
                breadCrumbItem.Url  += "?UserId=" + id;
                breadCrumbItem.Title = string.Format(breadCrumbItem.Title, user.UserName);
                break;

            case "~/admin/digitalgoods/editdigitalgood.aspx":
            case "~/admin/digitalgoods/serialkeyproviders/defaultprovider/configure.aspx":
                id = AlwaysConvert.ToInt(Request.QueryString["DigitalGoodId"]);
                DigitalGood dg = DigitalGoodDataSource.Load(id);
                if (dg != null)
                {
                    breadCrumbItem.Url  += "?DigitalGoodId=" + id;
                    breadCrumbItem.Title = string.Format(breadCrumbItem.Title, dg.Name);
                }
                break;

            case "~/admin/products/producttemplates/editproducttemplate.aspx":
                id = AlwaysConvert.ToInt(Request.QueryString["ProductTemplateId"]);
                ProductTemplate template = ProductTemplateDataSource.Load(id);
                if (template == null)
                {
                    InputField field = InputFieldDataSource.Load(AlwaysConvert.ToInt(Request.QueryString["InputFieldId"]));
                    if (field != null)
                    {
                        template = field.ProductTemplate;
                        id       = template.Id;
                    }
                }
                if (template != null)
                {
                    breadCrumbItem.Url  += "?ProductTemplateId=" + id;
                    breadCrumbItem.Title = string.Format(breadCrumbItem.Title, template.Name);
                }
                else
                {
                }
                break;

            case "~/admin/reports/dailyabandonedbaskets.aspx":
                id = AlwaysConvert.ToInt(Request.QueryString["BasketId"]);
                Basket basket = BasketDataSource.Load(id);
                if (basket != null)
                {
                    breadCrumbItem.Url += "?ReportDate=" + basket.User.LastActivityDate.Value.ToShortDateString();
                }
                break;
            }

            // resolve relative urls
            if (breadCrumbItem.Url.StartsWith("~/"))
            {
                breadCrumbItem.Url = Page.ResolveUrl(breadCrumbItem.Url);
            }
        }
Exemple #15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string action = Request.QueryString["action"];

            if (!string.IsNullOrEmpty(action))
            {
                //DETERMINE THE ACTION
                action = action.ToLowerInvariant();
                if (action == "remove")
                {
                    //delete user from the list
                    int    emailListId = AlwaysConvert.ToInt(Request.QueryString["list"]);
                    string email       = Request.QueryString["email"];
                    string key         = Request.QueryString["key"];
                    AbleContext.Current.Database.BeginTransaction();
                    EmailList list = EmailListDataSource.Load(emailListId);
                    if ((list != null) && (email != null))
                    {
                        string        eluKey = string.Empty;
                        EmailListUser elu    = EmailListUserDataSource.Load(emailListId, email);
                        if (elu != null)
                        {
                            eluKey = elu.SignupDate.ToString("MMddyyhhmmss");
                        }
                        if (key == eluKey)
                        {
                            list.RemoveMember(email);
                            phMessage.Controls.Add(new LiteralControl(string.Format(this.DeletedMessage, list.Name)));
                        }
                    }
                    AbleContext.Current.Database.CommitTransaction();
                }
                else if (action == "confirm")
                {
                    //ADD USER TO LIST
                    int    emailListId = AlwaysConvert.ToInt(Request.QueryString["list"]);
                    string email       = Request.QueryString["email"];
                    string key         = Request.QueryString["key"];
                    AbleContext.Current.Database.BeginTransaction();
                    EmailList list = EmailListDataSource.Load(emailListId);
                    if ((list == null) || !ValidationHelper.IsValidEmail(email))
                    {
                        Response.Redirect(AbleCommerce.Code.NavigationHelper.GetHomeUrl());
                    }
                    EmailListSignup signup = EmailListSignupDataSource.Load(emailListId, email);
                    if (signup != null)
                    {
                        if (key == signup.SignupKey)
                        {
                            signup.Activate();

                            //confirm user subscription
                            phMessage.Controls.Add(new LiteralControl(string.Format(this.SubscribedMessage, list.Name)));
                        }
                    }
                    else if (EmailListUserDataSource.Load(emailListId, email) != null)
                    {
                        //CHECK IF USER HAS ALREADY ACTIVATED
                        //confirm user subscription
                        phMessage.Controls.Add(new LiteralControl(string.Format(this.SubscribedMessage, list.Name)));
                    }
                    AbleContext.Current.Database.CommitTransaction();
                }
                else if (action == "unsubrr")
                {
                    int    userId = AlwaysConvert.ToInt(Request.QueryString["uid"]);
                    string email  = Request.QueryString["email"];
                    if (string.IsNullOrEmpty(email))
                    {
                        return;
                    }

                    CommerceBuilder.Users.User user = CommerceBuilder.Users.UserDataSource.Load(userId);
                    if (user != null && email.ToLowerInvariant() == user.Email.ToLowerInvariant())
                    {
                        user.Settings.OptOutReviewReminders = true;
                        user.Save();
                        string message = "You have successfully unsubscribed from all future product review invitations. If you are a registered user, you may join again by logging into your account and updating your profile.";
                        phMessage.Controls.Add(new LiteralControl(message));
                    }
                }
            }

            //IF RESPONSE IS EMPTY, REQUEST IS INVALID
            if (phMessage.Controls.Count == 0)
            {
                phMessage.Controls.Add(new LiteralControl(this.InvalidMessage));
            }
        }