/// <summary> /// Performs action on given subscriber. /// </summary> /// <param name="subscriberId">Id of subscriber</param> /// <param name="actionName">Name of action</param> private void DoSubscriberAction(int subscriberId, string actionName) { try { // Check manage subscribers permission var subscriber = SubscriberInfoProvider.GetSubscriberInfo(subscriberId); if (!subscriber.CheckPermissions(PermissionsEnum.Modify, SiteContext.CurrentSiteName, MembershipContext.AuthenticatedUser)) { RedirectToAccessDenied(subscriber.TypeInfo.ModuleName, "ManageSubscribers"); } switch (actionName.ToUpperInvariant()) { // Subscribe case SUBSCRIBE: var subscription = SubscriberNewsletterInfoProvider.GetSubscriberNewsletterInfo(subscriberId, mNewsletter.NewsletterID); if ((subscription == null) || subscription.SubscriptionEnabled) { return; } SubscriberInfoProvider.RenewSubscription(subscriberId, mNewsletter.NewsletterID, chkSendConfirmation.Checked); SubscriberNewsletterInfoProvider.SetApprovalStatus(subscriberId, mNewsletter.NewsletterID, !chkRequireOptIn.Checked); if (chkRequireOptIn.Checked) { IssueInfoProvider.SendDoubleOptInEmail(subscriberId, mNewsletter.NewsletterID); } break; // Unsubscribe case UNSUBSCRIBE: SubscriberInfoProvider.Unsubscribe(subscriberId, mNewsletter.NewsletterID, chkSendConfirmation.Checked); break; // Remove subscription case REMOVE: SubscriberInfoProvider.DeleteSubscription(subscriberId, mNewsletter.NewsletterID, chkSendConfirmation.Checked); break; // Approve subscription case APPROVE: SubscriberNewsletterInfoProvider.ApproveSubscription(subscriberId, mNewsletter.NewsletterID); break; // Block selected subscriber case BLOCK: SubscriberInfoProvider.BlockSubscriber(subscriberId); break; // Un-block selected subscriber case UNBLOCK: SubscriberInfoProvider.UnblockSubscriber(subscriberId); break; } } catch (Exception e) { LogAndShowError("Newsletter subscriber", "NEWSLETTERS", e); } }
/// <summary> /// Unigrid newsletters action handler. /// </summary> protected void unigridNewsletters_OnAction(string actionName, object actionArgument) { // Check 'configure' permission if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.newsletter", "ManageSubscribers")) { RedirectToCMSDeskAccessDenied("cms.newsletter", "ManageSubscribers"); } int newsletterId = ValidationHelper.GetInteger(actionArgument, 0); switch (actionName.ToLowerCSafe()) { // Renew subscription case "subscribe": SubscriberInfoProvider.RenewSubscription(subscriberId, newsletterId, chkSendConfirmation.Checked); break; // Unsubscribe selected subscriber case "unsubscribe": SubscriberInfoProvider.Unsubscribe(subscriberId, newsletterId, chkSendConfirmation.Checked); break; // Unsubscribe selected subscriber case "remove": SubscriberInfoProvider.DeleteSubscription(subscriberId, newsletterId, chkSendConfirmation.Checked); break; // Approve selected subscription case "approve": { SubscriberNewsletterInfo subscriptionInfo = SubscriberNewsletterInfoProvider.GetSubscriberNewsletterInfo(subscriberId, newsletterId); if ((subscriptionInfo != null) && (!subscriptionInfo.SubscriptionApproved)) { subscriptionInfo.SubscriptionApproved = true; subscriptionInfo.SubscriptionApprovedWhen = DateTime.Now; SubscriberNewsletterInfoProvider.SetSubscriberNewsletterInfo(subscriptionInfo); } } break; // Reject selected subscription case "reject": { SubscriberNewsletterInfo subscriptionInfo = SubscriberNewsletterInfoProvider.GetSubscriberNewsletterInfo(subscriberId, newsletterId); if ((subscriptionInfo != null) && (subscriptionInfo.SubscriptionApproved)) { subscriptionInfo.SubscriptionApproved = false; subscriptionInfo.SubscriptionApprovedWhen = DateTime.MinValue; SubscriberNewsletterInfoProvider.SetSubscriberNewsletterInfo(subscriptionInfo); } } break; } }
/// <summary> /// Performs action on given subscriber. /// </summary> /// <param name="newsletter">Newsletter info</param> /// <param name="actionName">Name of action</param> private void DoSubscriberAction(NewsletterInfo newsletter, string actionName) { switch (actionName.ToUpperInvariant()) { // Renew subscription case SUBSCRIBE: var subscriberNewsletterInfo = SubscriberNewsletterInfoProvider.GetSubscriberNewsletterInfo(mSubscriberId, newsletter.NewsletterID); if (subscriberNewsletterInfo.SubscriptionEnabled) { return; } bool requireDoubleOptIn = chkRequireOptIn.Checked && newsletter.NewsletterEnableOptIn; SubscriberInfoProvider.RenewSubscription(mSubscriberId, newsletter.NewsletterID, chkSendConfirmation.Checked && !requireDoubleOptIn); bool approved = true; // Check if double opt-in is enabled and if confirmation e-mail checkbox was checked if (requireDoubleOptIn) { IssueInfoProvider.SendDoubleOptInEmail(mSubscriberId, newsletter.NewsletterID); approved = false; } SubscriberNewsletterInfoProvider.SetApprovalStatus(mSubscriberId, newsletter.NewsletterID, approved); break; // Unsubscribe case UNSUBSCRIBE: SubscriberInfoProvider.Unsubscribe(mSubscriberId, newsletter.NewsletterID, chkSendConfirmation.Checked); break; // Remove subscription case REMOVE: SubscriberInfoProvider.DeleteSubscription(mSubscriberId, newsletter.NewsletterID, chkSendConfirmation.Checked); break; // Approve subscription case APPROVE: SubscriberNewsletterInfoProvider.ApproveSubscription(mSubscriberId, newsletter.NewsletterID); break; } }
/// <summary> /// Handles multiple selector actions. /// </summary> protected void btnOk_Clicked(object sender, EventArgs e) { // Check permissions if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.newsletter", "ManageSubscribers")) { RedirectToCMSDeskAccessDenied("cms.newsletter", "ManageSubscribers"); } // Return if no action was selected if (drpActions.SelectedValue.EqualsCSafe(SELECT, true)) { return; } // Get selected items List <string> list = unigridNewsletters.SelectedItems; if (list.Count == 0) { ltlScript.Text += ScriptHelper.GetAlertScript(GetString("general.noitems")); return; } int newsletterId; SubscriberNewsletterInfo subscriptionInfo; foreach (string id in list) { newsletterId = ValidationHelper.GetInteger(id, 0); switch (drpActions.SelectedValue) { // Subscribe case SUBSCRIBE: SubscriberInfoProvider.RenewSubscription(subscriberId, newsletterId, chkSendConfirmation.Checked); break; // Unsubscribe case UNSUBSCRIBE: SubscriberInfoProvider.Unsubscribe(subscriberId, newsletterId, chkSendConfirmation.Checked); break; // Remove subscription case "REMOVE": SubscriberInfoProvider.DeleteSubscription(subscriberId, newsletterId, chkSendConfirmation.Checked); break; // Approve subscription case "APPROVE": subscriptionInfo = SubscriberNewsletterInfoProvider.GetSubscriberNewsletterInfo(subscriberId, newsletterId); if ((subscriptionInfo != null) && (!subscriptionInfo.SubscriptionApproved)) { subscriptionInfo.SubscriptionApproved = true; subscriptionInfo.SubscriptionApprovedWhen = DateTime.Now; SubscriberNewsletterInfoProvider.SetSubscriberNewsletterInfo(subscriptionInfo); } break; // Reject subscription case "REJECT": subscriptionInfo = SubscriberNewsletterInfoProvider.GetSubscriberNewsletterInfo(subscriberId, newsletterId); if ((subscriptionInfo != null) && (subscriptionInfo.SubscriptionApproved)) { subscriptionInfo.SubscriptionApproved = false; subscriptionInfo.SubscriptionApprovedWhen = DateTime.MinValue; SubscriberNewsletterInfoProvider.SetSubscriberNewsletterInfo(subscriptionInfo); } break; } } unigridNewsletters.ResetSelection(); unigridNewsletters.ReloadData(); }
/// <summary> /// Handles multiple selector actions. /// </summary> protected void btnOk_Clicked(object sender, EventArgs e) { // Check permissions CheckAuthorization(); if (drpActions.SelectedValue != SELECT) { // Go through all selected items List <string> list = UniGridSubscribers.SelectedItems; if (list.Count > 0) { foreach (string subscriberId in list) { var subscriberInt = ValidationHelper.GetInteger(subscriberId, 0); var sni = SubscriberNewsletterInfoProvider.GetSubscriberNewsletterInfo(subscriberInt, newsletterId); if (sni != null) { switch (drpActions.SelectedValue) { // Subscribe case SUBSCRIBE: SubscriberInfoProvider.RenewSubscription(subscriberInt, newsletterId, chkSendConfirmation.Checked); break; // Unsubscribe case UNSUBSCRIBE: SubscriberInfoProvider.Unsubscribe(sni, chkSendConfirmation.Checked); break; // Remove subscription case REMOVE: SubscriberInfoProvider.DeleteSubscription(subscriberInt, newsletterId, chkSendConfirmation.Checked); break; // Approve subscription case APPROVE: if (!sni.SubscriptionApproved) { sni.SubscriptionApproved = true; sni.SubscriptionApprovedWhen = DateTime.Now; SubscriberNewsletterInfoProvider.SetSubscriberNewsletterInfo(sni); } break; // Reject subscription case REJECT: if (sni.SubscriptionApproved) { sni.SubscriptionApproved = false; sni.SubscriptionApprovedWhen = DateTime.MinValue; SubscriberNewsletterInfoProvider.SetSubscriberNewsletterInfo(sni); } break; } } } } else { ltlScript.Text += ScriptHelper.GetAlertScript(GetString("general.noitems")); } } UniGridSubscribers.ResetSelection(); UniGridSubscribers.ReloadData(); }
/// <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 UniGridSubscribers_OnAction(string actionName, object actionArgument) { // Check 'manage subscribers' permission CheckAuthorization(); int subscriberId = ValidationHelper.GetInteger(actionArgument, 0); switch (actionName.ToLowerCSafe()) { // Renew subscription case "subscribe": SubscriberInfoProvider.RenewSubscription(subscriberId, newsletterId, chkSendConfirmation.Checked); break; // Unsubscribe selected subscriber case "unsubscribe": SubscriberInfoProvider.Unsubscribe(subscriberId, newsletterId, chkSendConfirmation.Checked); break; // Delete subscription case "remove": SubscriberInfoProvider.DeleteSubscription(subscriberId, newsletterId, chkSendConfirmation.Checked); break; // Approve selected subscription case "approve": { SubscriberNewsletterInfo subscriptionInfo = SubscriberNewsletterInfoProvider.GetSubscriberNewsletterInfo(subscriberId, newsletterId); if ((subscriptionInfo != null) && (!subscriptionInfo.SubscriptionApproved)) { subscriptionInfo.SubscriptionApproved = true; subscriptionInfo.SubscriptionApprovedWhen = DateTime.Now; SubscriberNewsletterInfoProvider.SetSubscriberNewsletterInfo(subscriptionInfo); } } break; // Reject selected subscription case "reject": { SubscriberNewsletterInfo subscriptionInfo = SubscriberNewsletterInfoProvider.GetSubscriberNewsletterInfo(subscriberId, newsletterId); if ((subscriptionInfo != null) && (subscriptionInfo.SubscriptionApproved)) { subscriptionInfo.SubscriptionApproved = false; subscriptionInfo.SubscriptionApprovedWhen = DateTime.MinValue; SubscriberNewsletterInfoProvider.SetSubscriberNewsletterInfo(subscriptionInfo); } } break; // Block selected subscriber case "block": SubscriberInfoProvider.BlockSubscriber(subscriberId); break; // Un-block selected subscriber case "unblock": SubscriberInfoProvider.UnblockSubscriber(subscriberId); break; } }