/// <summary> /// On action event handling. /// </summary> /// <param name="actionName">Name of the action.</param> /// <param name="actionArgument">Parameter for the action.</param> protected void boardSubscriptions_OnAction(string actionName, object actionArgument) { int boardSubscriptionId = ValidationHelper.GetInteger(actionArgument, 0); switch (actionName.ToLowerCSafe()) { case "delete": if (RaiseOnCheckPermissions(PERMISSION_MANAGE, this)) { if (StopProcessing) { return; } } try { BoardSubscriptionInfoProvider.DeleteBoardSubscriptionInfo(boardSubscriptionId); } catch (Exception ex) { ShowError(ex.Message); } break; case "approve": if (RaiseOnCheckPermissions(PERMISSION_MANAGE, this)) { if (StopProcessing) { return; } } // Approve BoardSubscriptionInfo object BoardSubscriptionInfo bsi = BoardSubscriptionInfoProvider.GetBoardSubscriptionInfo(boardSubscriptionId); if ((bsi != null) && !bsi.SubscriptionApproved) { bsi.SubscriptionApproved = true; BoardSubscriptionInfoProvider.SetBoardSubscriptionInfo(bsi); // Send confirmation mail BoardInfo bi = BoardInfoProvider.GetBoardInfo(bsi.SubscriptionBoardID); if ((bi != null) && bi.BoardSendOptInConfirmation) { BoardSubscriptionInfoProvider.SendConfirmationEmail(bsi, true); } // Log activity if (MembershipContext.AuthenticatedUser.UserID == UserID) { Service <ICurrentContactMergeService> .Entry().UpdateCurrentContactEmail(bsi.SubscriptionEmail, MembershipContext.AuthenticatedUser); BoardSubscriptionInfoProvider.LogSubscriptionActivity(bsi, bi, PredefinedActivityType.SUBSCRIPTION_MESSAGE_BOARD, false); } } break; } }
/// <summary> /// Deletes message board subscription. Called when the "Delete subscription" button is pressed. /// Expects the CreateMessageBoardSubscription method to be run first. /// </summary> private bool DeleteMessageBoardSubscription() { // Get the tree structure TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); // Get root document TreeNode root = tree.SelectSingleNode(SiteContext.CurrentSiteName, "/", null, true); if (root != null) { // Get the message board BoardInfo board = BoardInfoProvider.GetBoardInfo("MyNewBoard", root.DocumentID); if (board != null) { // Get the message board subscription BoardSubscriptionInfo deleteSubscription = BoardSubscriptionInfoProvider.GetBoardSubscriptionInfo(board.BoardID, MembershipContext.AuthenticatedUser.UserID); // Delete the message board subscription BoardSubscriptionInfoProvider.DeleteBoardSubscriptionInfo(deleteSubscription); return(deleteSubscription != null); } } return(false); }
/// <summary> /// On action event handling. /// </summary> /// <param name="actionName"></param> /// <param name="actionArgument"></param> protected void boardSubscriptions_OnAction(string actionName, object actionArgument) { switch (actionName.ToLower()) { case "delete": if (RaiseOnCheckPermissions(CMSAdminControl.PERMISSION_MANAGE, this)) { if (this.StopProcessing) { return; } } try { BoardSubscriptionInfoProvider.DeleteBoardSubscriptionInfo(ValidationHelper.GetInteger(actionArgument, 0)); } catch (Exception ex) { lblError.Visible = true; lblError.Text = ex.Message; } break; default: break; } }
protected void boardSubscriptions_OnAction(string actionName, object actionArgument) { // Get currently processed subscription ID int subscriptionId = ValidationHelper.GetInteger(actionArgument, 0); if (subscriptionId > 0) { switch (actionName.ToLower()) { case "delete": if (!CheckPermissions("cms.messageboards", CMSAdminControl.PERMISSION_MODIFY)) { return; } // Remove subscription according current ID BoardSubscriptionInfoProvider.DeleteBoardSubscriptionInfo(subscriptionId); break; default: break; } this.RaiseOnAction(actionName, actionArgument); } }
protected void boardSubscriptions_OnAction(string actionName, object actionArgument) { BoardSubscriptionInfo bsi = null; // Get currently processed subscription ID int subscriptionId = ValidationHelper.GetInteger(actionArgument, 0); if (subscriptionId > 0) { switch (actionName.ToLowerCSafe()) { case "delete": if (!CheckPermissions("cms.messageboards", PERMISSION_MODIFY)) { return; } // Get subscription according current ID bsi = BoardSubscriptionInfoProvider.GetBoardSubscriptionInfo(subscriptionId); if (bsi != null) { if (chkSendConfirmationEmail.Checked && bsi.SubscriptionApproved) { BoardSubscriptionInfoProvider.SendConfirmationEmail(bsi, false); } BoardSubscriptionInfoProvider.DeleteBoardSubscriptionInfo(bsi); } break; case "approve": if (!CheckPermissions("cms.messageboards", PERMISSION_MODIFY)) { return; } // Approve ForumSubscriptionInfo object bsi = BoardSubscriptionInfoProvider.GetBoardSubscriptionInfo(subscriptionId); if ((bsi != null) && !bsi.SubscriptionApproved) { bsi.SubscriptionApproved = true; BoardSubscriptionInfoProvider.SetBoardSubscriptionInfo(bsi); if (chkSendConfirmationEmail.Checked) { BoardSubscriptionInfoProvider.SendConfirmationEmail(bsi, true); } } break; default: break; } RaiseOnAction(actionName, actionArgument); } }
/// <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) { DataSet subscriptionInfo = BoardSubscriptionInfoProvider.GetSubscriptions("SubscriptionGUID='" + subscriptionGuid + "'", null); if (!DataHelper.DataSourceIsEmpty(subscriptionInfo)) { try { int subscriptionId = ValidationHelper.GetInteger(subscriptionInfo.Tables[0].Rows[0]["SubscriptionID"], 0); // Remove subscription information from the system BoardSubscriptionInfoProvider.DeleteBoardSubscriptionInfo(subscriptionId); // Inform user on success this.lblInfo.Visible = true; this.lblInfo.Text = ((this.UnsubscribedText.Trim() != "") ? this.UnsubscribedText : GetString("board.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("board.unsubscribe.subscriptiondontexist"); } } else { // Inform user when subscription information is missing this.Visible = false; } } }
protected void Page_Load(object sender, EventArgs e) { // Get info on subscription Guid subscriptionGuid = QueryHelper.GetGuid("subscriptionguid", Guid.Empty); if (subscriptionGuid != Guid.Empty) { DataSet subscriptionInfo = BoardSubscriptionInfoProvider.GetSubscriptions("SubscriptionGUID='" + subscriptionGuid + "'", null); if (!DataHelper.DataSourceIsEmpty(subscriptionInfo)) { try { int subscriptionId = ValidationHelper.GetInteger(subscriptionInfo.Tables[0].Rows[0]["SubscriptionID"], 0); // Remove subscription information from the system BoardSubscriptionInfoProvider.DeleteBoardSubscriptionInfo(subscriptionId); // Inform user on success this.lblInfo.Visible = true; this.lblInfo.Text = GetString("board.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("board.unsubscribe.subscriptiondontexist"); } } }
/// <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 = OptInApprovalResultEnum.NotFound; // Check only data consistency if (checkOnly) { if (SubscriptionObject != null) { // Validate hash result = BoardSubscriptionInfoProvider.ValidateHash(SubscriptionObject, subscriptionHash, SiteContext.CurrentSiteName, datetime); if ((result == OptInApprovalResultEnum.Success) && (SubscriptionObject.SubscriptionApproved)) { result = OptInApprovalResultEnum.NotFound; } } } else { // Try to approve subscription result = BoardSubscriptionInfoProvider.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); BoardSubscriptionInfoProvider.LogSubscriptionActivity(SubscriptionObject, null, QueryHelper.GetInteger("cid", 0), QueryHelper.GetInteger("siteid", 0), QueryHelper.GetText("url", ""), QueryHelper.GetInteger("docid", 0), QueryHelper.GetText("camp", ""), PredefinedActivityType.SUBSCRIPTION_MESSAGE_BOARD, true); } break; // Subscription failed due to parameters case OptInApprovalResultEnum.Failed: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulConfirmationText, GetString("general.subscription_failed"))); break; case OptInApprovalResultEnum.TimeExceeded: BoardSubscriptionInfoProvider.DeleteBoardSubscriptionInfo(SubscriptionObject); DisplayError(DataHelper.GetNotEmpty(UnsuccessfulConfirmationText, GetString("general.subscription_timeexceeded"))); break; // Subscription not found default: DisplayError(DataHelper.GetNotEmpty(UnsuccessfulConfirmationText, GetString("general.subscription_invalid"))); break; } }