Ejemplo n.º 1
0
    /// <summary>
    /// Gets and bulk updates blog post subscriptions. Called when the "Get and bulk update subscriptions" button is pressed.
    /// Expects the CreateBlogPostSubscription method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateBlogPostSubscriptions()
    {
        // Prepare the parameters
        string where = "SubscriptionEmail LIKE '*****@*****.**'";
        string orderBy = "SubscriptionEmail";

        // Get the blog post subscriptions
        DataSet subscriptions = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptions(where, orderBy);
        if (!DataHelper.DataSourceIsEmpty(subscriptions))
        {
            // Loop through the individual items
            foreach (DataRow subscriptionDr in subscriptions.Tables[0].Rows)
            {
                // Create object from DataRow
                BlogPostSubscriptionInfo modifySubscription = new BlogPostSubscriptionInfo(subscriptionDr);

                // Update the property
                modifySubscription.SubscriptionEmail = modifySubscription.SubscriptionEmail.ToUpper();

                // Update blog post subscription
                BlogPostSubscriptionInfoProvider.SetBlogPostSubscriptionInfo(modifySubscription);
            }

            return true;
        }

        return false;
    }
Ejemplo n.º 2
0
    /// <summary>
    /// Gets and updates blog post subscription. Called when the "Get and update subscription" button is pressed.
    /// Expects the CreateBlogPostSubscription method to be run first.
    /// </summary>
    private bool GetAndUpdateBlogPostSubscription()
    {
        // Prepare the parameters
        TreeNode documentNode = null;

        // Get the blog posts
        DataSet posts = BlogHelper.GetBlogPosts(CMSContext.CurrentSiteName, "/MyNewBlog", null, true, null, null, true);
        if (!DataHelper.DataSourceIsEmpty(posts))
        {
            TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);

            // Create object from DataRow
            documentNode = TreeNode.New(posts.Tables[0].Rows[0], "cms.blogpost", tree);
        }

        if (documentNode != null)
        {
            // Get the blog post subscription
            BlogPostSubscriptionInfo updateSubscription = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo("*****@*****.**", documentNode.DocumentID);
            if (updateSubscription != null)
            {
                // Change the properties
                updateSubscription.SubscriptionEmail = updateSubscription.SubscriptionEmail.ToLower();

                // Update blog post subscription
                BlogPostSubscriptionInfoProvider.SetBlogPostSubscriptionInfo(updateSubscription);

                return true;
            }
        }

        return false;
    }
Ejemplo n.º 3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get info on subscription
        Guid subscriptionGuid = QueryHelper.GetGuid("subscriptionguid", Guid.Empty);

        if (subscriptionGuid != Guid.Empty)
        {
            BlogPostSubscriptionInfo subscriptionInfo = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo(subscriptionGuid);
            if (subscriptionInfo != null)
            {
                try
                {
                    // Remove subscription information from the system
                    BlogPostSubscriptionInfoProvider.DeleteBlogPostSubscriptionInfo(subscriptionInfo.SubscriptionID);

                    // Inform user on success
                    this.lblInfo.Visible = true;
                    this.lblInfo.Text    = GetString("blog.unsubscribe.success");
                }
                catch (Exception ex)
                {
                    // Inform user on general error
                    lblError.Visible = true;
                    lblError.Text    = GetString("general.erroroccurred") + " " + ex.Message;
                }
            }
            else
            {
                // Inform user when specified subscription wasn't find in the system at all
                lblError.Visible = true;
                lblError.Text    = GetString("blog.unsubscribe.subscriptiondontexist");
            }
        }
    }
Ejemplo n.º 4
0
    /// <summary>
    /// Creates blog post subscription. Called when the "Create subscription" button is pressed.
    /// Expects the CreateBlogPost method to be run first.
    /// </summary>
    private bool CreateBlogPostSubscription()
    {
        // Prepare the parameters
        TreeNode documentNode = null;

        // Get the blog posts
        DataSet posts = BlogHelper.GetBlogPosts(CMSContext.CurrentSiteName, "/MyNewBlog", null, true, null, null, true);
        if (!DataHelper.DataSourceIsEmpty(posts))
        {
            TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);

            // Create object from DataRow
            documentNode = TreeNode.New(posts.Tables[0].Rows[0], "cms.blogpost", tree);
        }

        if (documentNode != null)
        {
            // Create new blog post subscription object
            BlogPostSubscriptionInfo newSubscription = new BlogPostSubscriptionInfo();

            // Set the properties
            newSubscription.SubscriptionPostDocumentID = documentNode.DocumentID;
            newSubscription.SubscriptionUserID = CMSContext.CurrentUser.UserID;
            newSubscription.SubscriptionEmail = "*****@*****.**";

            // Create the blog post subscription
            BlogPostSubscriptionInfoProvider.SetBlogPostSubscriptionInfo(newSubscription);

            return true;
        }

        return false;
    }
Ejemplo n.º 5
0
    /// <summary>
    /// Deletes blog post subscription. Called when the "Delete subscription" button is pressed.
    /// Expects the CreateBlogPostSubscription method to be run first.
    /// </summary>
    private bool DeleteBlogPostSubscription()
    {
        // Prepare the parameters
        TreeNode documentNode = null;

        // Get the blog posts
        DataSet posts = BlogHelper.GetBlogPosts(CMSContext.CurrentSiteName, "/MyNewBlog", null, true, null, null, true);

        if (!DataHelper.DataSourceIsEmpty(posts))
        {
            TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);

            // Create object from DataRow
            documentNode = TreeNode.New(posts.Tables[0].Rows[0], "cms.blogpost", tree);
        }

        if (documentNode != null)
        {
            // Get the blog post subscription
            BlogPostSubscriptionInfo deleteSubscription = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo("*****@*****.**", documentNode.NodeID);
            if (deleteSubscription != null)
            {
                // Delete the blog post subscription
                BlogPostSubscriptionInfoProvider.DeleteBlogPostSubscriptionInfo(deleteSubscription);

                return(true);
            }
        }

        return(false);
    }
Ejemplo n.º 6
0
    /// <summary>
    /// Deletes blog post subscription. Called when the "Delete subscription" button is pressed.
    /// Expects the CreateBlogPostSubscription method to be run first.
    /// </summary>
    private bool DeleteBlogPostSubscription()
    {
        // Prepare the parameters
        TreeNode documentNode = null;

        // Get the blog posts
        DataSet posts = BlogHelper.GetBlogPosts(SiteContext.CurrentSiteName, "/MyNewBlog", null, true, null, null, true);

        if (!DataHelper.DataSourceIsEmpty(posts))
        {
            TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);

            // Create object from DataRow
            documentNode = TreeNode.New("cms.blogpost", posts.Tables[0].Rows[0], tree);
        }

        if (documentNode != null)
        {
            // Get the blog post subscription
            BlogPostSubscriptionInfo deleteSubscription = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo("*****@*****.**", documentNode.DocumentID);
            if (deleteSubscription != null)
            {
                // Delete the blog post subscription
                BlogPostSubscriptionInfoProvider.DeleteBlogPostSubscriptionInfo(deleteSubscription);

                return(true);
            }
        }

        return(false);
    }
Ejemplo n.º 7
0
    protected void SetupControl()
    {
        // In design mode is pocessing of control stoped
        if (this.StopProcessing)
        {
            // Do nothing
        }
        else
        {
            if (CMSContext.CurrentUser.UserID == this.UserID)
            {
                this.gridElem.ZeroRowsText = GetString("blogsubscripitons.userhasnosubscriptions");
            }
            else
            {
                this.gridElem.ZeroRowsText = GetString("blogsubscripitons.NoDataUser");
            }
            this.gridElem.IsLiveSite = this.IsLiveSite;
            this.gridElem.OnAction += new OnActionEventHandler(gridElem_OnAction);
            this.gridElem.OnExternalDataBound += new OnExternalDataBoundEventHandler(gridElem_OnExternalDataBound);
            this.gridElem.OnDataReload += new OnDataReloadEventHandler(gridElem_OnDataReload);
            gridElem.ShowActionsMenu = true;
            gridElem.Columns = "SubscriptionID, SubscriptionEmail, DocumentName, NodeAliasPath, DocumentCulture";

            // Get all possible columns to retrieve
            IDataClass nodeClass = DataClassFactory.NewDataClass("CMS.Tree");
            DocumentInfo di = new DocumentInfo();
            BlogPostSubscriptionInfo bpsi = new BlogPostSubscriptionInfo();
            gridElem.AllColumns = SqlHelperClass.MergeColumns(SqlHelperClass.MergeColumns(SqlHelperClass.MergeColumns(bpsi.ColumnNames.ToArray()), SqlHelperClass.MergeColumns(di.ColumnNames.ToArray())), SqlHelperClass.MergeColumns(nodeClass.ColumnNames.ToArray()));

            mSiteName = SiteInfoProvider.GetSiteName(SiteID);
        }
    }
    /// <summary>
    /// Handles the UniGrid's OnAction event.
    /// </summary>
    /// <param name="actionName">Name of item (button) that threw event</param>
    /// <param name="actionArgument">ID (value of Primary key) of corresponding data row</param>
    protected void gridElem_OnAction(string actionName, object actionArgument)
    {
        int subscriptionId = ValidationHelper.GetInteger(actionArgument, 0);

        switch (actionName.ToLowerCSafe())
        {
        case "delete":
            if (RaiseOnCheckPermissions(PERMISSION_MANAGE, this))
            {
                if (StopProcessing)
                {
                    return;
                }
            }

            try
            {
                // Try to delete notification subscription
                BlogPostSubscriptionInfoProvider.DeleteBlogPostSubscriptionInfo(subscriptionId);
            }
            catch (Exception ex)
            {
                ShowError(ex.Message);
            }
            break;

        case "approve":
            if (RaiseOnCheckPermissions(PERMISSION_MANAGE, this))
            {
                if (StopProcessing)
                {
                    return;
                }
            }

            // Approve BlogPostSubscriptionInfo object
            BlogPostSubscriptionInfo bsi = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo(subscriptionId);
            if ((bsi != null) && !bsi.SubscriptionApproved)
            {
                bsi.SubscriptionApproved = true;
                BlogPostSubscriptionInfoProvider.SetBlogPostSubscriptionInfo(bsi);

                // Log activity
                if (MembershipContext.AuthenticatedUser.UserID == UserID)
                {
                    Service <ICurrentContactMergeService> .Entry().UpdateCurrentContactEmail(bsi.SubscriptionEmail, MembershipContext.AuthenticatedUser);

                    var blogsActivityLogger = new BlogsActivityLogger();
                    blogsActivityLogger.LogBlogPostSubscriptionActivity(bsi);
                }
            }
            break;
        }
    }
Ejemplo n.º 9
0
    /// <summary>
    /// Logs activity.
    /// </summary>
    /// <param name="bpsi">Blog subscription info</param>
    private void LogActivity(BlogPostSubscriptionInfo bpsi)
    {
        if ((bpsi != null) && (bpsi.SubscriptionPostDocumentID > 0))
        {
            TreeNode blogPost = DocumentHelper.GetDocument(bpsi.SubscriptionPostDocumentID, new TreeProvider());
            TreeNode blogNode = BlogHelper.GetParentBlog(bpsi.SubscriptionPostDocumentID, false);
            string   blogName = (blogNode != null) ? blogNode.GetDocumentName() : null;

            Activity activity = new ActivitySubscriptionBlogPost(blogName, blogNode, blogPost, bpsi, CMSContext.ActivityEnvironmentVariables);
            activity.Log();
        }
    }
Ejemplo n.º 10
0
    /// <summary>
    /// Logs activity.
    /// </summary>
    /// <param name="bpsi">Blog subscription info</param>
    /// <param name="nodeId">Docuemnt node ID</param>
    /// <param name="culture">Document culture</param>
    private void LogActivity(BlogPostSubscriptionInfo bpsi, int nodeId, string culture)
    {
        if ((CMSContext.ViewMode != ViewModeEnum.LiveSite) || (bpsi == null) || !ActivitySettingsHelper.ActivitiesEnabledForThisUser(CMSContext.CurrentUser))
        {
            return;
        }

        string siteName = CMSContext.CurrentSiteName;

        if (!ActivitySettingsHelper.ActivitiesEnabledAndModuleLoaded(siteName) ||
            !ActivitySettingsHelper.BlogPostSubscriptionEnabled(siteName))
        {
            return;
        }

        if (bpsi.SubscriptionPostDocumentID > 0)
        {
            TreeProvider tree     = new TreeProvider();
            TreeNode     blogPost = DocumentHelper.GetDocument(bpsi.SubscriptionPostDocumentID, tree);

            if ((blogPost != null) && ValidationHelper.GetBoolean(blogPost.GetValue("BlogLogActivity"), false))
            {
                string   blogName = null;
                TreeNode blogNode = BlogHelper.GetParentBlog(bpsi.SubscriptionPostDocumentID, false);
                if (blogNode != null)
                {
                    blogName = blogNode.DocumentName;
                }

                // Update contact info according to subscribtion
                int contactId = ModuleCommands.OnlineMarketingGetCurrentContactID();
                Dictionary <string, object> contactData = new Dictionary <string, object>();
                contactData.Add("ContactEmail", bpsi.SubscriptionEmail);
                ModuleCommands.OnlineMarketingUpdateContactFromExternalSource(contactData, false, contactId);

                var data = new ActivityData()
                {
                    ContactID    = contactId,
                    SiteID       = CMSContext.CurrentSiteID,
                    Type         = PredefinedActivityType.SUBSCRIPTION_BLOG_POST,
                    ItemDetailID = (blogNode != null ? blogNode.NodeID : 0),
                    TitleData    = bpsi.SubscriptionEmail,
                    URL          = URLHelper.CurrentRelativePath,
                    NodeID       = nodeId,
                    Value        = TextHelper.LimitLength(blogName, 250),
                    Culture      = culture,
                    Campaign     = CMSContext.Campaign
                };
                ActivityLogProvider.LogActivity(data);
            }
        }
    }
    /// <summary>
    /// Handles the UniGrid's OnAction event.
    /// </summary>
    /// <param name="actionName">Name of item (button) that threw event</param>
    /// <param name="actionArgument">ID (value of Primary key) of corresponding data row</param>
    protected void gridElem_OnAction(string actionName, object actionArgument)
    {
        int subscriptionId = ValidationHelper.GetInteger(actionArgument, 0);

        switch (actionName.ToLowerCSafe())
        {
        case "delete":
            if (RaiseOnCheckPermissions(PERMISSION_MANAGE, this))
            {
                if (StopProcessing)
                {
                    return;
                }
            }

            try
            {
                // Try to delete notification subscription
                BlogPostSubscriptionInfoProvider.DeleteBlogPostSubscriptionInfo(subscriptionId);
            }
            catch (Exception ex)
            {
                ShowError(ex.Message);
            }
            break;

        case "approve":
            if (RaiseOnCheckPermissions(PERMISSION_MANAGE, this))
            {
                if (StopProcessing)
                {
                    return;
                }
            }

            // Approve BlogPostSubscriptionInfo object
            BlogPostSubscriptionInfo bsi = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo(subscriptionId);
            if ((bsi != null) && !bsi.SubscriptionApproved)
            {
                bsi.SubscriptionApproved = true;
                BlogPostSubscriptionInfoProvider.SetBlogPostSubscriptionInfo(bsi);

                // Log activity
                if (MembershipContext.AuthenticatedUser.UserID == UserID)
                {
                    BlogPostSubscriptionInfoProvider.LogSubscriptionActivity(bsi, PredefinedActivityType.SUBSCRIPTION_BLOG_POST, false);
                }
            }
            break;
        }
    }
    /// <summary>
    /// Initializes the controls.
    /// </summary>
    private void SetupControls()
    {
        if (!this.StopProcessing)
        {
            // Get info on subscription
            Guid subscriptionGuid = QueryHelper.GetGuid("subscriptionguid", Guid.Empty);
            if (subscriptionGuid != Guid.Empty)
            {
                BlogPostSubscriptionInfo subscriptionInfo = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo(subscriptionGuid);
                if (subscriptionInfo != null)
                {
                    try
                    {
                        // Remove subscription information from the system
                        BlogPostSubscriptionInfoProvider.DeleteBlogPostSubscriptionInfo(subscriptionInfo.SubscriptionID);

                        // Inform user on success
                        this.lblInfo.Visible = true;
                        this.lblInfo.Text    = ((this.UnsubscribedText.Trim() != "") ? this.UnsubscribedText : GetString("blog.unsubscribe.success"));
                    }
                    catch (Exception ex)
                    {
                        // Inform user on general error
                        lblError.Visible = true;
                        lblError.Text    = GetString("general.erroroccurred") + " " + ex.Message;
                    }
                }
                else
                {
                    // Inform user when specified subscription wasn't find in the system at all
                    lblError.Visible = true;
                    lblError.Text    = GetString("blog.unsubscribe.subscriptiondontexist");
                }
            }
            else
            {
                // Inform user when subscription information is missing
                this.Visible = false;
            }
        }
    }
Ejemplo n.º 13
0
    /// <summary>
    /// Creates blog post subscription. Called when the "Create subscription" button is pressed.
    /// Expects the CreateBlogPost method to be run first.
    /// </summary>
    private bool CreateBlogPostSubscription()
    {
        // Prepare the parameters
        TreeNode documentNode = null;

        // Get the blog posts
        DataSet posts = BlogHelper.GetBlogPosts(CMSContext.CurrentSiteName, "/MyNewBlog", null, true, null, null, true);

        if (!DataHelper.DataSourceIsEmpty(posts))
        {
            TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);

            // Create object from DataRow
            documentNode = TreeNode.New(posts.Tables[0].Rows[0], "cms.blogpost", tree);
        }

        if (documentNode != null)
        {
            // Create new blog post subscription object
            BlogPostSubscriptionInfo newSubscription = new BlogPostSubscriptionInfo();

            // Set the properties
            newSubscription.SubscriptionPostDocumentID = documentNode.NodeID;
            newSubscription.SubscriptionUserID         = CMSContext.CurrentUser.UserID;
            newSubscription.SubscriptionEmail          = "*****@*****.**";
            //newSubscription.SubscriptionGUID = Guid.NewGuid();
            //newSubscription.SubscriptionLastModified = DateTime.Now;

            // Create the blog post subscription
            BlogPostSubscriptionInfoProvider.SetBlogPostSubscriptionInfo(newSubscription);

            return(true);
        }

        return(false);
    }
Ejemplo n.º 14
0
    /// <summary>
    /// OK click handler.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        // Check banned IP
        if (!BannedIPInfoProvider.IsAllowed(CMSContext.CurrentSiteName, BanControlEnum.AllNonComplete))
        {
            lblError.Visible = true;
            lblError.Text = GetString("General.BannedIP");
            return;
        }

        // Check input fields
        string email = txtEmail.Text.Trim();
        string result = new Validator().NotEmpty(email, rfvEmailRequired.ErrorMessage)
            .IsEmail(email, GetString("general.correctemailformat")).Result;

        // Try to subscribe new subscriber
        if (result == "")
        {
            if (this.DocumentID > 0)
            {
                BlogPostSubscriptionInfo bpsi = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo(email, this.DocumentID);

                // Check for duplicit subscriptions
                if (bpsi == null)
                {
                    bpsi = new BlogPostSubscriptionInfo();
                    bpsi.SubscriptionPostDocumentID = this.DocumentID;
                    bpsi.SubscriptionEmail = email;

                    // Update user id for logged users (except the public users)
                    if ((CMSContext.CurrentUser != null) && (!CMSContext.CurrentUser.IsPublic()))
                    {
                        bpsi.SubscriptionUserID = CMSContext.CurrentUser.UserID;
                    }

                    BlogPostSubscriptionInfoProvider.SetBlogPostSubscriptionInfo(bpsi);

                    lblInfo.Visible = true;
                    lblInfo.Text = GetString("blog.subscription.beensubscribed");

                    // Clear form after successful subscription
                    txtEmail.Text = "";

                    LogActivity(bpsi, this.NodeID, this.Culture);
                }
                else
                {
                    result = GetString("blog.subscription.emailexists");
                }
            }
            else
            {
                result = GetString("general.invalidid");
            }
        }

        if (result != String.Empty)
        {
            lblError.Visible = true;
            lblError.Text = result;
        }
    }
Ejemplo n.º 15
0
    /// <summary>
    /// Logs registration activity.
    /// </summary>
    /// <param name="bpsi">Blog subscription info</param>
    /// <param name="nodeId">Docuemnt node ID</param>
    /// <param name="culture">Document culture</param>
    private void LogRegistrationActivity(BlogPostSubscriptionInfo bpsi, int nodeId, string culture)
    {
        if ((CMSContext.ViewMode != ViewModeEnum.LiveSite) || (bpsi == null) || !ActivitySettingsHelper.ActivitiesEnabledForThisUser(CMSContext.CurrentUser))
        {
            return;
        }

        string siteName = CMSContext.CurrentSiteName;
        if (!ActivitySettingsHelper.ActivitiesEnabledAndModuleLoaded(siteName) ||
            !ActivitySettingsHelper.BlogPostSubscriptionEnabled(siteName))
        {
            return;
        }

        if (bpsi.SubscriptionPostDocumentID > 0)
        {
            TreeProvider tree = new TreeProvider();
            TreeNode blogPost = DocumentHelper.GetDocument(bpsi.SubscriptionPostDocumentID, tree);

            if ((blogPost != null) && ValidationHelper.GetBoolean(blogPost.GetValue("BlogLogActivity"), false))
            {
                string blogName = null;
                TreeNode blogNode = BlogHelper.GetParentBlog(bpsi.SubscriptionPostDocumentID, false);
                if (blogNode != null)
                {
                    blogName = blogNode.DocumentName;
                }

                // Update contact info according to subscribtion
                var data = new ActivityData()
                {
                    ContactID = ModuleCommands.OnlineMarketingGetCurrentContactID(),
                    SiteID = CMSContext.CurrentSiteID,
                    Type = PredefinedActivityType.SUBSCRIPTION_BLOG_POST,
                    ItemDetailID = (blogNode != null ? blogNode.NodeID : 0),
                    TitleData = bpsi.SubscriptionEmail,
                    URL = URLHelper.CurrentRelativePath,
                    NodeID = nodeId,
                    Value = TextHelper.LimitLength(blogName, 250),
                    Culture = culture,
                    Campaign = CMSContext.Campaign
                };
                ActivityLogProvider.LogActivity(data);
            }
        }
    }
Ejemplo n.º 16
0
    public void PerformAction()
    {
        // Check banned ip
        if (!BannedIPInfoProvider.IsAllowed(CMSContext.CurrentSiteName, BanControlEnum.AllNonComplete))
        {
            lblError.Visible = true;
            lblError.Text = GetString("General.BannedIP");
            return;
        }

        if (OnBeforeCommentSaved != null)
        {
            OnBeforeCommentSaved();
        }

        BlogCommentInfo bci = null;

        // Validate form
        string errorMessage = ValidateForm();
        if (errorMessage == "")
        {
            // Check flooding when message being inserted through the LiveSite
            if (IsLiveSite && FloodProtectionHelper.CheckFlooding(CMSContext.CurrentSiteName, CMSContext.CurrentUser))
            {
                lblError.Visible = true;
                lblError.Text = GetString("General.FloodProtection");
                return;
            }

            CurrentUserInfo currentUser = CMSContext.CurrentUser;

            // Create new comment
            if (IsInsertMode)
            {
                bci = new BlogCommentInfo();
                bci.CommentDate = DateTime.Now;
                bci.CommentPostDocumentID = mPostDocumentId;
                if (!currentUser.IsPublic())
                {
                    bci.CommentUserID = currentUser.UserID;
                }
                bci.CommentIsTrackback = false;
            }
            // Get existing comment
            else
            {
                bci = BlogCommentInfoProvider.GetBlogCommentInfo(mCommentId);
            }

            // Update basic comment properties
            if (bci != null)
            {
                // Add http:// if needed
                string url = HTMLHelper.HTMLEncode(txtUrl.Text.Trim());
                if (url != "")
                {
                    if ((!url.ToLower().StartsWith("http://")) && (!url.ToLower().StartsWith("https://")))
                    {
                        url = "http://" + url;
                    }
                }

                bci.CommentIsSpam = chkSpam.Checked;
                bci.CommentApproved = chkApproved.Checked;
                bci.CommentUserName = HTMLHelper.HTMLEncode(txtName.Text.Trim());
                bci.CommentUrl = url;
                bci.CommentText = HTMLHelper.HTMLEncode(txtComments.Text.Trim());
                bci.CommentUrl = bci.CommentUrl.ToLower().Replace("javascript", "_javascript");
                bci.CommentEmail = HTMLHelper.HTMLEncode(txtEmail.Text.Trim());
            }

            if (IsInsertMode)
            {
                // Auto approve owner comments
                if (bci != null)
                {
                    TreeNode blogNode = BlogHelper.GetParentBlog(bci.CommentPostDocumentID, false);
                    if ((currentUser != null) && (blogNode != null))
                    {
                        bool isAuthorized = BlogHelper.IsUserAuthorizedToManageComments(blogNode);
                        if (isAuthorized)
                        {
                            bci.CommentApprovedByUserID = blogNode.NodeOwner;
                            bci.CommentApproved = true;
                        }
                        else
                        {
                            // Is blog moderated ?
                            bool moderated = ValidationHelper.GetBoolean(blogNode.GetValue("BlogModerateComments"), false);

                            bci.CommentApprovedByUserID = 0;
                            bci.CommentApproved = !moderated;
                        }
                    }
                }
            }

            // Perform bad words check
            if (!BadWordInfoProvider.CanUseBadWords(CMSContext.CurrentUser, CMSContext.CurrentSiteName))
            {
                if (bci != null)
                {
                    // Prepare columns to check
                    Dictionary<string, int> columns = new Dictionary<string, int>();
                    columns.Add("CommentText", 0);
                    columns.Add("CommentUserName", 200);

                    // Perform bad words to check
                    errorMessage = BadWordsHelper.CheckBadWords(bci, columns, "CommentApproved", "CommentApprovedByUserID", bci.CommentText, CMSContext.CurrentUser.UserID);
                }
            }

            if (errorMessage == string.Empty)
            {
                if (bci != null)
                {
                    if (!ValidateComment(bci))
                    {
                        // Show error message
                        lblError.Visible = true;
                        lblError.Text = GetString("Blog.CommentEdit.EmptyBadWord");
                    }
                    else
                    {
                        // Subscribe new subscriber
                        if (chkSubscribe.Checked)
                        {
                            BlogPostSubscriptionInfo bpsi = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo(txtEmail.Text, mPostDocumentId);

                            if (bpsi == null)
                            {
                                bpsi = new BlogPostSubscriptionInfo();
                                bpsi.SubscriptionEmail = txtEmail.Text;
                                bpsi.SubscriptionPostDocumentID = mPostDocumentId;
                                bpsi.SubscriptionUserID = bci.CommentUserID;
                                BlogPostSubscriptionInfoProvider.SetBlogPostSubscriptionInfo(bpsi);
                                LogRegistrationActivity(bpsi, this.PostNodeId, this.PostCulture);
                            }
                            else
                            {
                                errorMessage = GetString("blog.subscription.emailexists");
                            }
                        }

                        if (errorMessage == "")
                        {
                            // Save changes to database
                            BlogCommentInfoProvider.SetBlogCommentInfo(bci);

                            if (!bci.CommentApproved)
                            {
                                CommentSavedText = GetString("blog.comments.requiresmoderationafteraction");
                            }

                            // Inform user
                            lblInfo.Visible = true;
                            lblInfo.Text = CommentSavedText;

                            // Clear form when required
                            if (mClearFormAfterSave)
                            {
                                txtComments.Text = "";
                                txtUrl.Text = "";
                                ctrlCaptcha.Value = "";
                            }

                            LogCommentActivity(bci, this.PostNodeId, this.PostCulture);

                            if (OnAfterCommentSaved != null)
                            {
                                OnAfterCommentSaved(bci);
                            }
                        }
                    }
                }
            }
        }

        if (errorMessage != "")
        {
            // Show error message
            lblError.Visible = true;
            lblError.Text = errorMessage;
        }
        else
        {
            // Regenerate captcha code when comment saved successfully
            ctrlCaptcha.GenerateNew();
        }
    }
    /// <summary>
    /// OK click handler.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        // Check banned IP
        if (!BannedIPInfoProvider.IsAllowed(SiteContext.CurrentSiteName, BanControlEnum.AllNonComplete))
        {
            lblError.Visible = true;
            lblError.Text = GetString("General.BannedIP");
            return;
        }

        // Check input fields
        string email = txtEmail.Text.Trim();
        string result = new Validator().NotEmpty(email, rfvEmailRequired.ErrorMessage)
            .IsEmail(email, GetString("general.correctemailformat")).Result;

        // Try to subscribe new subscriber
        if (result == "")
        {
            if (DocumentID > 0)
            {
                BlogPostSubscriptionInfo bpsi = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo(email, DocumentID);

                // Check for duplicit subscriptions
                if ((bpsi == null) || !bpsi.SubscriptionApproved)
                {
                    bpsi = new BlogPostSubscriptionInfo();
                    bpsi.SubscriptionPostDocumentID = DocumentID;
                    bpsi.SubscriptionEmail = email;

                    // Update user id for logged users (except the public users)
                    if ((MembershipContext.AuthenticatedUser != null) && (!MembershipContext.AuthenticatedUser.IsPublic()))
                    {
                        bpsi.SubscriptionUserID = MembershipContext.AuthenticatedUser.UserID;
                    }

                    BlogPostSubscriptionInfoProvider.Subscribe(bpsi, DateTime.Now, true, true);

                    lblInfo.Visible = true;
                    if (bpsi.SubscriptionApproved)
                    {
                        lblInfo.Text = GetString("blog.subscription.beensubscribed");
                        LogActivity(bpsi);
                    }
                    else
                    {
                        lblInfo.Text = GetString("general.subscribed.doubleoptin");
                        int optInInterval = BlogHelper.GetBlogDoubleOptInInterval(SiteContext.CurrentSiteName);
                        if (optInInterval > 0)
                        {
                            lblInfo.Text += "<br />" + string.Format(GetString("general.subscription_timeintervalwarning"), optInInterval);
                        }

                    }
                    // Clear form after successful subscription
                    txtEmail.Text = "";

                }
                else
                {
                    result = GetString("blog.subscription.emailexists");
                }
            }
            else
            {
                result = GetString("general.invalidid");
            }
        }

        if (result != String.Empty)
        {
            lblError.Visible = true;
            lblError.Text = result;
        }
    }
    /// <summary>
    /// Logs activity.
    /// </summary>
    /// <param name="bpsi">Blog subscription info</param>
    private void LogActivity(BlogPostSubscriptionInfo bpsi)
    {
        if ((bpsi != null) && (bpsi.SubscriptionPostDocumentID > 0))
        {
            TreeNode blogPost = DocumentHelper.GetDocument(bpsi.SubscriptionPostDocumentID, new TreeProvider());
            TreeNode blogNode = BlogHelper.GetParentBlog(bpsi.SubscriptionPostDocumentID, false);
            string blogName = (blogNode != null) ? blogNode.GetDocumentName() : null;

            Activity activity = new ActivitySubscriptionBlogPost(blogName, blogNode, blogPost, bpsi, AnalyticsContext.ActivityEnvironmentVariables);
            activity.Log();
        }
    }
Ejemplo n.º 19
0
    /// <summary>
    /// OK click handler.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        // Check banned IP
        if (!BannedIPInfoProvider.IsAllowed(SiteContext.CurrentSiteName, BanControlEnum.AllNonComplete))
        {
            lblError.Visible = true;
            lblError.Text    = GetString("General.BannedIP");
            return;
        }

        // Check input fields
        string email  = txtEmail.Text.Trim();
        string result = new Validator()
                        .NotEmpty(email, rfvEmailRequired.ErrorMessage)
                        .MatchesCondition(txtEmail, input => input.IsValid(), GetString("general.correctemailformat"))
                        .Result;

        // Try to subscribe new subscriber
        if (result == String.Empty)
        {
            if (DocumentID > 0)
            {
                BlogPostSubscriptionInfo bpsi = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo(email, DocumentID);

                // Check for duplicity of subscriptions
                if ((bpsi == null) || !bpsi.SubscriptionApproved)
                {
                    bpsi = new BlogPostSubscriptionInfo();
                    bpsi.SubscriptionPostDocumentID = DocumentID;
                    bpsi.SubscriptionEmail          = email;

                    // Update user id for logged users (except the public users)
                    if ((MembershipContext.AuthenticatedUser != null) && (!MembershipContext.AuthenticatedUser.IsPublic()))
                    {
                        bpsi.SubscriptionUserID = MembershipContext.AuthenticatedUser.UserID;
                    }

                    BlogPostSubscriptionInfoProvider.Subscribe(bpsi, DateTime.Now, true, true);

                    lblInfo.Visible = true;
                    if (bpsi.SubscriptionApproved)
                    {
                        lblInfo.Text = GetString("blog.subscription.beensubscribed");
                        Service.Resolve <ICurrentContactMergeService>().UpdateCurrentContactEmail(bpsi.SubscriptionEmail, MembershipContext.AuthenticatedUser);
                        var blogsActivityLogger = new BlogsActivityLogger();
                        blogsActivityLogger.LogBlogPostSubscriptionActivity(bpsi);
                    }
                    else
                    {
                        lblInfo.Text = GetString("general.subscribed.doubleoptin");
                        int optInInterval = BlogHelper.GetBlogDoubleOptInInterval(SiteContext.CurrentSiteName);
                        if (optInInterval > 0)
                        {
                            lblInfo.Text += "<br />" + string.Format(GetString("general.subscription_timeintervalwarning"), optInInterval);
                        }
                    }

                    // Clear form after successful subscription
                    txtEmail.Text = "";
                }
                else
                {
                    result = GetString("blog.subscription.emailexists");
                }
            }
            else
            {
                result = GetString("general.invalidid");
            }
        }

        if (result == String.Empty)
        {
            return;
        }

        lblError.Visible = true;
        lblError.Text    = result;
    }
Ejemplo n.º 20
0
    /// <summary>
    /// Gets and bulk updates blog post subscriptions. Called when the "Get and bulk update subscriptions" button is pressed.
    /// Expects the CreateBlogPostSubscription method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateBlogPostSubscriptions()
    {
        // Prepare the parameters
        string where = "SubscriptionEmail LIKE '*****@*****.**'";
        string orderBy = "SubscriptionEmail";

        // Get the blog post subscriptions
        DataSet subscriptions = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptions(where, orderBy);
        if (!DataHelper.DataSourceIsEmpty(subscriptions))
        {
            // Loop through the individual items
            foreach (DataRow subscriptionDr in subscriptions.Tables[0].Rows)
            {
                // Create object from DataRow
                BlogPostSubscriptionInfo modifySubscription = new BlogPostSubscriptionInfo(subscriptionDr);

                // Update the property
                modifySubscription.SubscriptionEmail = modifySubscription.SubscriptionEmail.ToUpper();

                // Update blog post subscription
                BlogPostSubscriptionInfoProvider.SetBlogPostSubscriptionInfo(modifySubscription);
            }

            return true;
        }

        return false;
    }
Ejemplo n.º 21
0
    /// <summary>
    /// Creates blog post subscription. Called when the "Create subscription" button is pressed.
    /// Expects the CreateBlogPost method to be run first.
    /// </summary>
    private bool CreateBlogPostSubscription()
    {
        // Prepare the parameters
        TreeNode documentNode = null;

        // Get the blog posts
        DataSet posts = BlogHelper.GetBlogPosts(CMSContext.CurrentSiteName, "/MyNewBlog", null, true, null, null, true);
        if (!DataHelper.DataSourceIsEmpty(posts))
        {
            TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);

            // Create object from DataRow
            documentNode = TreeNode.New(posts.Tables[0].Rows[0], "cms.blogpost", tree);
        }

        if (documentNode != null)
        {
            // Create new blog post subscription object
            BlogPostSubscriptionInfo newSubscription = new BlogPostSubscriptionInfo();

            // Set the properties
            newSubscription.SubscriptionPostDocumentID = documentNode.DocumentID;
            newSubscription.SubscriptionUserID = CMSContext.CurrentUser.UserID;
            newSubscription.SubscriptionEmail = "*****@*****.**";

            // Create the blog post subscription
            BlogPostSubscriptionInfoProvider.SetBlogPostSubscriptionInfo(newSubscription);

            return true;
        }

        return false;
    }
Ejemplo n.º 22
0
    /// <summary>
    /// OK click handler.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        // Check banned IP
        if (!BannedIPInfoProvider.IsAllowed(CMSContext.CurrentSiteName, BanControlEnum.AllNonComplete))
        {
            lblError.Visible = true;
            lblError.Text    = GetString("General.BannedIP");
            return;
        }

        // Check input fields
        string email  = txtEmail.Text.Trim();
        string result = new Validator().NotEmpty(email, rfvEmailRequired.ErrorMessage)
                        .IsEmail(email, GetString("general.correctemailformat")).Result;

        // Try to subscribe new subscriber
        if (result == "")
        {
            if (this.DocumentID > 0)
            {
                BlogPostSubscriptionInfo bpsi = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo(email, this.DocumentID);

                // Check for duplicit subscriptions
                if (bpsi == null)
                {
                    bpsi = new BlogPostSubscriptionInfo();
                    bpsi.SubscriptionPostDocumentID = this.DocumentID;
                    bpsi.SubscriptionEmail          = email;

                    // Update user id for logged users (except the public users)
                    if ((CMSContext.CurrentUser != null) && (!CMSContext.CurrentUser.IsPublic()))
                    {
                        bpsi.SubscriptionUserID = CMSContext.CurrentUser.UserID;
                    }

                    BlogPostSubscriptionInfoProvider.SetBlogPostSubscriptionInfo(bpsi);

                    lblInfo.Visible = true;
                    lblInfo.Text    = GetString("blog.subscription.beensubscribed");

                    // Clear form after successful subscription
                    txtEmail.Text = "";

                    LogActivity(bpsi, this.NodeID, this.Culture);
                }
                else
                {
                    result = GetString("blog.subscription.emailexists");
                }
            }
            else
            {
                result = GetString("general.invalidid");
            }
        }

        if (result != String.Empty)
        {
            lblError.Visible = true;
            lblError.Text    = result;
        }
    }
Ejemplo n.º 23
0
    public void PerformAction()
    {
        // Check banned ip
        if (!BannedIPInfoProvider.IsAllowed(SiteContext.CurrentSiteName, BanControlEnum.AllNonComplete))
        {
            lblError.Visible = true;
            lblError.Text    = GetString("General.BannedIP");
            return;
        }

        if (OnBeforeCommentSaved != null)
        {
            OnBeforeCommentSaved();
        }

        // Validate form
        string errorMessage = ValidateForm();

        if (errorMessage == "")
        {
            // Check flooding when message being inserted through the LiveSite
            if (IsLiveSite && FloodProtectionHelper.CheckFlooding(SiteContext.CurrentSiteName, MembershipContext.AuthenticatedUser))
            {
                lblError.Visible = true;
                lblError.Text    = GetString("General.FloodProtection");
                return;
            }

            var currentUser = MembershipContext.AuthenticatedUser;

            // Create new comment
            BlogCommentInfo bci;
            if (IsInsertMode)
            {
                bci                       = new BlogCommentInfo();
                bci.CommentDate           = DateTime.Now;
                bci.CommentPostDocumentID = mPostDocumentId;

                // User IP address
                bci.CommentInfo.IPAddress = RequestContext.UserHostAddress;
                // User agent
                bci.CommentInfo.Agent = Request.UserAgent;

                if (!currentUser.IsPublic())
                {
                    bci.CommentUserID = currentUser.UserID;
                }
                bci.CommentIsTrackback = false;
            }
            // Get existing comment
            else
            {
                bci = BlogCommentInfoProvider.GetBlogCommentInfo(mCommentId);
            }

            // Update basic comment properties
            if (bci != null)
            {
                // Add http:// if needed
                string url = txtUrl.Text.Trim();
                if (url != "")
                {
                    if ((!url.ToLowerCSafe().StartsWithCSafe("http://")) && (!url.ToLowerCSafe().StartsWithCSafe("https://")))
                    {
                        url = "http://" + url;
                    }
                }

                bci.CommentIsSpam   = chkSpam.Checked;
                bci.CommentApproved = chkApproved.Checked;
                bci.CommentUserName = txtName.Text.Trim();
                bci.CommentUrl      = url;
                bci.CommentText     = txtComments.Text.Trim();
                bci.CommentUrl      = bci.CommentUrl.ToLowerCSafe().Replace("javascript", "_javascript");
                bci.CommentEmail    = txtEmail.Text.Trim();
            }

            if (IsInsertMode)
            {
                // Auto approve owner comments
                if (bci != null)
                {
                    TreeNode blogNode = BlogHelper.GetParentBlog(bci.CommentPostDocumentID, false);
                    if ((currentUser != null) && (blogNode != null))
                    {
                        bool isAuthorized = BlogHelper.IsUserAuthorizedToManageComments(blogNode);
                        if (isAuthorized)
                        {
                            bci.CommentApprovedByUserID = blogNode.NodeOwner;
                            bci.CommentApproved         = true;
                        }
                        else
                        {
                            // Is blog moderated ?
                            bool moderated = ValidationHelper.GetBoolean(blogNode.GetValue("BlogModerateComments"), false);

                            bci.CommentApprovedByUserID = 0;
                            bci.CommentApproved         = !moderated;
                        }
                    }
                }
            }

            // Perform bad words check
            if (!BadWordInfoProvider.CanUseBadWords(MembershipContext.AuthenticatedUser, SiteContext.CurrentSiteName))
            {
                if (bci != null)
                {
                    // Prepare columns to check
                    Dictionary <string, int> columns = new Dictionary <string, int>();
                    columns.Add("CommentText", 0);
                    columns.Add("CommentUserName", 200);

                    // Perform bad words to check
                    errorMessage = BadWordsHelper.CheckBadWords(bci, columns, "CommentApproved", "CommentApprovedByUserID", bci.CommentText, MembershipContext.AuthenticatedUser.UserID, () => ValidateComment(bci));
                }
            }

            if (errorMessage == string.Empty)
            {
                if (bci != null)
                {
                    if (!ValidateComment(bci))
                    {
                        // Show error message
                        lblError.Visible = true;
                        lblError.Text    = GetString("Blog.CommentEdit.EmptyBadWord");
                    }
                    else
                    {
                        // Subscribe new subscriber
                        if (chkSubscribe.Checked)
                        {
                            // Check for duplicate subscriptions
                            BlogPostSubscriptionInfo bpsi = BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptionInfo(txtEmail.Text, mPostDocumentId);
                            if ((bpsi == null) || !bpsi.SubscriptionApproved)
                            {
                                bpsi = new BlogPostSubscriptionInfo();
                                bpsi.SubscriptionEmail          = txtEmail.Text;
                                bpsi.SubscriptionPostDocumentID = mPostDocumentId;
                                bpsi.SubscriptionUserID         = bci.CommentUserID;
                                BlogPostSubscriptionInfoProvider.Subscribe(bpsi, DateTime.Now, true, true);

                                if (bpsi.SubscriptionApproved)
                                {
                                    LogRegistrationActivity(bpsi);
                                }
                            }
                            else
                            {
                                errorMessage = GetString("blog.subscription.emailexists");
                            }
                        }

                        if (errorMessage == "")
                        {
                            // Save changes to database
                            BlogCommentInfoProvider.SetBlogCommentInfo(bci);

                            if (!bci.CommentApproved)
                            {
                                CommentSavedText = GetString("blog.comments.requiresmoderationafteraction");
                            }

                            // Inform user
                            lblInfo.Visible = true;
                            lblInfo.Text    = CommentSavedText;

                            // Clear form when required
                            if (mClearFormAfterSave)
                            {
                                txtComments.Text  = "";
                                txtUrl.Text       = "";
                                ctrlCaptcha.Value = "";
                            }

                            LogCommentActivity(bci, PostNodeId, PostCulture);

                            if (OnAfterCommentSaved != null)
                            {
                                OnAfterCommentSaved(bci);
                            }
                        }
                    }
                }
            }
        }

        if (errorMessage != "")
        {
            // Show error message
            lblError.Visible = true;
            lblError.Text    = errorMessage;
        }
    }
    protected void SetupControl()
    {
        // In design mode is processing of control stopped
        if (StopProcessing)
        {
            // Do nothing
        }
        else
        {
            if (CMSContext.CurrentUser.UserID == UserID)
            {
                gridElem.ZeroRowsText = GetString("blogsubscripitons.userhasnosubscriptions");
            }
            else
            {
                gridElem.ZeroRowsText = GetString("blogsubscripitons.NoDataUser");
            }
            gridElem.IsLiveSite = IsLiveSite;
            gridElem.OnAction += gridElem_OnAction;
            gridElem.OnExternalDataBound += gridElem_OnExternalDataBound;
            gridElem.OnDataReload += gridElem_OnDataReload;
            gridElem.ShowActionsMenu = true;
            gridElem.Columns = "SubscriptionID, SubscriptionEmail, DocumentName, NodeAliasPath, DocumentCulture, SubscriptionApproved";

            // Get all possible columns to retrieve
            IDataClass nodeClass = DataClassFactory.NewDataClass("CMS.Tree");
            DocumentInfo di = new DocumentInfo();
            BlogPostSubscriptionInfo bpsi = new BlogPostSubscriptionInfo();
            gridElem.AllColumns = SqlHelperClass.MergeColumns(SqlHelperClass.MergeColumns(SqlHelperClass.MergeColumns(bpsi.ColumnNames), SqlHelperClass.MergeColumns(di.ColumnNames)), SqlHelperClass.MergeColumns(nodeClass.ColumnNames));

            mSiteName = SiteInfoProvider.GetSiteName(SiteID);
        }
    }