/// <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; }
/// <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); }
/// <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; }
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"); } } }
/// <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); }
/// <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; }
/// <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; } }
/// <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; } } }
/// <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); }
/// <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) { if (actionName == "delete") { if (RaiseOnCheckPermissions(CMSAdminControl.PERMISSION_MANAGE, this)) { if (this.StopProcessing) { return; } } try { // Try to delete notification subscription BlogPostSubscriptionInfoProvider.DeleteBlogPostSubscriptionInfo(ValidationHelper.GetInteger(actionArgument, 0)); } catch (Exception ex) { lblError.Visible = true; lblError.Text = ex.Message; } } }
protected DataSet gridElem_OnDataReload(string completeWhere, string currentOrder, int currentTopN, string columns, int currentOffset, int currentPageSize, ref int totalRecords) { return BlogPostSubscriptionInfoProvider.GetBlogPostSubscriptions(UserID, SiteID, completeWhere, currentTopN, currentOrder, columns, currentOffset, currentPageSize, ref totalRecords); }
/// <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; }
/// <summary> /// Check that subscription hash is valid and subscription didn't expire /// </summary> /// <param name="subscriptionHash">Subscription hash to check</param> /// <param name="requestTime">Date time of subscription request</param> /// <param name="checkOnly">Indicates if only check will be performed</param> private void CheckAndSubscribe(string subscriptionHash, string requestTime, bool checkOnly) { // Get date and time DateTime datetime = DateTimeHelper.ZERO_TIME; // Get date and time if (!string.IsNullOrEmpty(requestTime)) { try { datetime = DateTime.ParseExact(requestTime, SecurityHelper.EMAIL_CONFIRMATION_DATETIME_FORMAT, null); } catch { DisplayError(DataHelper.GetNotEmpty(UnsuccessfulConfirmationText, GetString("general.subscription_failed"))); return; } } // Initialize opt-in result OptInApprovalResultEnum result = OptInApprovalResultEnum.NotFound; // Check only data consistency if (checkOnly) { // Validate hash result = BlogPostSubscriptionInfoProvider.ValidateHash(SubscriptionObject, subscriptionHash, SiteContext.CurrentSiteName, datetime); if ((result == OptInApprovalResultEnum.Success) && (SubscriptionObject.SubscriptionApproved)) { result = OptInApprovalResultEnum.NotFound; } } else { // Try to approve subscription result = BlogPostSubscriptionInfoProvider.ApproveSubscription(SubscriptionObject, subscriptionHash, false, SiteContext.CurrentSiteName, datetime); } // Process result switch (result) { // Approving subscription was successful case OptInApprovalResultEnum.Success: if (!checkOnly) { ShowInfo(DataHelper.GetNotEmpty(SuccessfulConfirmationText, GetString("general.subscription_approval"))); BlogPostSubscriptionInfoProvider.LogSubscriptionActivity(SubscriptionObject, QueryHelper.GetInteger("cid", 0), QueryHelper.GetInteger("siteid", 0), QueryHelper.GetText("url", ""), QueryHelper.GetText("camp", ""), PredefinedActivityType.SUBSCRIPTION_BLOG_POST, true); } break; // Subscription was already approved case OptInApprovalResultEnum.Failed: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulConfirmationText, GetString("general.subscription_failed"))); break; case OptInApprovalResultEnum.TimeExceeded: BlogPostSubscriptionInfoProvider.DeleteBlogPostSubscriptionInfo(SubscriptionObject); DisplayError(DataHelper.GetNotEmpty(UnsuccessfulConfirmationText, GetString("general.subscription_timeexceeded"))); break; // Subscription not found default: case OptInApprovalResultEnum.NotFound: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulConfirmationText, GetString("general.subscription_invalid"))); break; } }
/// <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; } }
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; } }
/// <summary> /// Check that subscription hash is valid and subscription didn't expire /// </summary> /// <param name="subscriptionHash">Subscription hash to check</param> /// <param name="requestTime">Date time of subscription request</param> /// <param name="checkOnly">Indicates if only check will be performed</param> private void CheckAndSubscribe(string subscriptionHash, string requestTime, bool checkOnly) { // Get date and time DateTime datetime = DateTimeHelper.ZERO_TIME; // Get date and time if (!string.IsNullOrEmpty(requestTime)) { try { datetime = DateTimeUrlFormatter.Parse(requestTime); } catch { DisplayError(DataHelper.GetNotEmpty(UnsuccessfulConfirmationText, GetString("general.subscription_failed"))); return; } } // Initialize opt-in result OptInApprovalResultEnum result; // Check only data consistency if (checkOnly) { // Validate hash result = BlogPostSubscriptionInfoProvider.ValidateHash(SubscriptionObject, subscriptionHash, SiteContext.CurrentSiteName, datetime); if ((result == OptInApprovalResultEnum.Success) && (SubscriptionObject.SubscriptionApproved)) { result = OptInApprovalResultEnum.NotFound; } } else { // Try to approve subscription result = BlogPostSubscriptionInfoProvider.ApproveSubscription(SubscriptionObject, subscriptionHash, false, SiteContext.CurrentSiteName, datetime); } // Process result switch (result) { // Approving subscription was successful case OptInApprovalResultEnum.Success: if (!checkOnly) { ShowInfo(DataHelper.GetNotEmpty(SuccessfulConfirmationText, GetString("general.subscription_approval"))); Service.Resolve <ICurrentContactMergeService>().UpdateCurrentContactEmail(SubscriptionObject.SubscriptionEmail, MembershipContext.AuthenticatedUser); var blogsActivityLogger = Service.Resolve <IBlogsActivityLogger>(); blogsActivityLogger.LogBlogPostSubscriptionActivity(SubscriptionObject, QueryHelper.GetInteger("cid", 0), QueryHelper.GetInteger("siteid", 0), QueryHelper.GetText("camp", "")); } break; // Subscription was already approved case OptInApprovalResultEnum.Failed: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulConfirmationText, GetString("general.subscription_failed"))); break; case OptInApprovalResultEnum.TimeExceeded: BlogPostSubscriptionInfoProvider.DeleteBlogPostSubscriptionInfo(SubscriptionObject); DisplayError(DataHelper.GetNotEmpty(UnsuccessfulConfirmationText, GetString("general.subscription_timeexceeded"))); break; // Subscription not found default: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulConfirmationText, GetString("general.subscription_invalid"))); break; } }
/// <summary> /// Check that subscription hash is valid and subscription didn't expire /// </summary> /// <param name="subGuid">Subscription GUID for subscriptions without</param> /// <param name="subscriptionHash">Subscription hash to check</param> /// <param name="requestTime">Date time of subscription request</param> /// <param name="checkOnly">Indicates if only check will be performed</param> private void CheckAndUnsubscribe(Guid subGuid, string subscriptionHash, string requestTime, bool checkOnly) { OptInApprovalResultEnum result = OptInApprovalResultEnum.NotFound; // Get date and time DateTime datetime = DateTimeHelper.ZERO_TIME; if (!string.IsNullOrEmpty(requestTime)) { try { datetime = DateTime.ParseExact(requestTime, SecurityHelper.EMAIL_CONFIRMATION_DATETIME_FORMAT, null); } catch { DisplayError(GetString("general.unsubscription_unsuccessful")); return; } } if (subGuid != Guid.Empty) { if (SubscriptionObject != null) { if (!checkOnly) { BlogPostSubscriptionInfoProvider.DeleteBlogPostSubscriptionInfo(SubscriptionObject); result = OptInApprovalResultEnum.Success; } } } // Check if subscription approval hash is supplied else if (!string.IsNullOrEmpty(subscriptionHash)) { if (checkOnly) { // Validate hash result = BlogPostSubscriptionInfoProvider.ValidateHash(SubscriptionObject, subscriptionHash, SiteContext.CurrentSiteName, datetime); } else { // Check if hash is valid result = BlogPostSubscriptionInfoProvider.Unsubscribe(subscriptionHash, true, SiteContext.CurrentSiteName, datetime); } } switch (result) { // Approving subscription was successful case OptInApprovalResultEnum.Success: if (!checkOnly) { ShowInfo(DataHelper.GetNotEmpty(SuccessfulUnsubscriptionText, GetString("Unsubscribe.Unsubscribed"))); } break; // Subscription was already approved case OptInApprovalResultEnum.Failed: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulUnsubscriptionText, GetString("general.unsubscription_unsuccessful"))); break; case OptInApprovalResultEnum.TimeExceeded: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulUnsubscriptionText, GetString("general.unsubscription_timeexceeded"))); break; // Subscription not found default: case OptInApprovalResultEnum.NotFound: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulUnsubscriptionText, GetString("general.unsubscription_NotSubscribed"))); break; } }
/// <summary> /// Check that subscription hash is valid and subscription didn't expire /// </summary> /// <param name="subGuid">Subscription GUID for subscriptions without</param> /// <param name="subscriptionHash">Subscription hash to check</param> /// <param name="requestTime">Date time of subscription request</param> /// <param name="checkOnly">Indicates if only check will be performed</param> private void CheckAndUnsubscribe(Guid subGuid, string subscriptionHash, string requestTime, bool checkOnly) { OptInApprovalResultEnum result = OptInApprovalResultEnum.NotFound; // Get date and time DateTime datetime = DateTimeHelper.ZERO_TIME; if (!String.IsNullOrEmpty(requestTime)) { try { datetime = DateTimeUrlFormatter.Parse(requestTime); } catch { DisplayError(GetString("general.unsubscription_unsuccessful")); return; } } if (SubscriptionObject != null) { if (subGuid != Guid.Empty) { if (!checkOnly) { BlogPostSubscriptionInfoProvider.DeleteBlogPostSubscriptionInfo(SubscriptionObject); result = OptInApprovalResultEnum.Success; } else { // Subscription exists but do nothing automatically, wait to user action return; } } // Check if subscription approval hash is supplied else if (!string.IsNullOrEmpty(subscriptionHash)) { result = checkOnly ? BlogPostSubscriptionInfoProvider.ValidateHash(SubscriptionObject, subscriptionHash, SiteContext.CurrentSiteName, datetime) : BlogPostSubscriptionInfoProvider.Unsubscribe(subscriptionHash, true, SiteContext.CurrentSiteName, datetime); } } switch (result) { // Approving subscription was successful case OptInApprovalResultEnum.Success: if (!checkOnly) { ShowInfo(DataHelper.GetNotEmpty(SuccessfulUnsubscriptionText, GetString("Unsubscribe.Unsubscribed"))); } break; // Subscription was already approved case OptInApprovalResultEnum.Failed: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulUnsubscriptionText, GetString("general.unsubscription_unsuccessful"))); break; case OptInApprovalResultEnum.TimeExceeded: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulUnsubscriptionText, GetString("general.unsubscription_timeexceeded"))); break; // Subscription not found default: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulUnsubscriptionText, GetString("general.unsubscription_NotSubscribed"))); break; } }