private void DoUnsubscribe() { if (subscriptionGuid != Guid.Empty) { LetterSubscriber s = subscriptions.Fetch(subscriptionGuid); if (s == null) { ShowNotFoundMessge(); return; } subscriptions.Delete(s); LetterInfo.UpdateSubscriberCount(s.LetterInfoGuid); lblUnsubscribe.Text = Resource.NewsletterUnsubscribeSuccess; btnUnsubscribeConfirm.Visible = false; lblUnsubscribe.Visible = true; return; } LetterInfo letterInfo = new LetterInfo(letterInfoGuid); if (letterInfo.LetterInfoGuid == Guid.Empty) { ShowNotFoundMessge(); return; } List <LetterSubscriber> userSubscriptions = subscriptions.GetListByUser(siteSettings.SiteGuid, userGuid); bool unsubscribed = false; foreach (LetterSubscriber s in userSubscriptions) { if (s.LetterInfoGuid == letterInfoGuid) { subscriptions.Delete(s); unsubscribed = true; LetterInfo.UpdateSubscriberCount(s.LetterInfoGuid); } } if (unsubscribed) { lblUnsubscribe.Text = string.Format(CultureInfo.InvariantCulture, Resource.NewsletterUnsubscribeSuccessFormatString, letterInfo.Title); btnUnsubscribeConfirm.Visible = false; lblUnsubscribe.Visible = true; } else { ShowNotFoundMessge(); } }
/// <summary> /// people can subscribe to the newsletters without registering on the site. This method is used to attach those existing subscriptions to the user upon registration /// </summary> /// <param name="siteUser"></param> public static void ClaimExistingSubscriptions(SiteUser siteUser) { SubscriberRepository subscriptions = new SubscriberRepository(); List <LetterSubscriber> userSubscriptions = subscriptions.GetListByEmail(siteUser.SiteGuid, siteUser.Email); foreach (LetterSubscriber s in userSubscriptions) { if (s.UserGuid != siteUser.UserGuid) { s.UserGuid = siteUser.UserGuid; subscriptions.Save(s); } if (!s.IsVerified) { subscriptions.Verify(s.SubscribeGuid, true, Guid.Empty); LetterInfo.UpdateSubscriberCount(s.LetterInfoGuid); } } List <LetterSubscriber> memberSubscriptions = subscriptions.GetListByUser(siteUser.SiteGuid, siteUser.UserGuid); RemoveDuplicates(memberSubscriptions); // commented out 2012-11-16 since we now give the user a chance to opt in the registration // then we should not force him in if he chose not to opt in //if (memberSubscriptions.Count == 0) //{ // string ipAddress = SiteUtils.GetIP4Address(); // //user has no previous subscriptions and just registered // // lets give him the site subscriptions that are configured for opting in new users by default // List<LetterInfo> allNewsletters = LetterInfo.GetAll(siteUser.SiteGuid); // foreach (LetterInfo l in allNewsletters) // { // if ((l.ProfileOptIn) && (l.AvailableToRoles.Contains("All Users;"))) // { // LetterSubscriber s = new LetterSubscriber(); // s.SiteGuid = siteUser.SiteGuid; // s.LetterInfoGuid = l.LetterInfoGuid; // s.UserGuid = siteUser.UserGuid; // s.EmailAddress = siteUser.Email; // s.IsVerified = true; // s.UseHtml = true; // s.IpAddress = ipAddress; // subscriptions.Save(s); // } // } //} }
public static void VerifyExistingSubscriptions(SiteUser siteUser) { SubscriberRepository subscriptions = new SubscriberRepository(); List <LetterSubscriber> userSubscriptions = subscriptions.GetListByUser(siteUser.SiteGuid, siteUser.UserGuid); foreach (LetterSubscriber s in userSubscriptions) { if (!s.IsVerified) { subscriptions.Verify(s.SubscribeGuid, true, Guid.Empty); LetterInfo.UpdateSubscriberCount(s.LetterInfoGuid); } } }
private void GetSubscriptions() { if ((siteSettings != null) && (siteUser != null)) { siteAvailableSubscriptions = NewsletterHelper.GetAvailableNewslettersForCurrentUser(siteSettings.SiteGuid); userSubscriptions = subscriptions.GetListByUser(siteSettings.SiteGuid, siteUser.UserGuid); foreach (LetterSubscriber s in userSubscriptions) { if (!s.IsVerified) { hasUnverifiedSubscriptions = true; } } } }
private void DoSubscribe(SiteUser siteUser) { foreach (LetterInfo available in siteAvailableSubscriptions) { ListItem item = clNewsletters.Items.FindByValue(available.LetterInfoGuid.ToString()); if ((item != null) && (item.Selected)) { DoSubscribe(available, siteUser); } } List <LetterSubscriber> memberSubscriptions = subscriptions.GetListByUser(siteUser.SiteGuid, siteUser.UserGuid); NewsletterHelper.RemoveDuplicates(memberSubscriptions); }