private void EnsureItems() { if (lstAll.Items.Count > 0) { return; } // if all items are selected the above can be 0 // which would load them all again without this line below if (lstSelected.Items.Count > 0) { return; } SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings(); if (siteSettings == null) { return; } List <LetterInfo> availableNewsletters = LetterInfo.GetAll(siteSettings.SiteGuid); ListItem listItem; foreach (LetterInfo newsletter in availableNewsletters) { //if (newsletter.AvailableToRoles.Contains("All Users")) //{ listItem = new ListItem(newsletter.Title, newsletter.LetterInfoGuid.ToString()); lstAll.Items.Add(listItem); // } } }
public static List <LetterInfo> GetAvailableNewslettersForCurrentUser(Guid siteGuid) { List <LetterInfo> available = new List <LetterInfo>(); List <LetterInfo> all = LetterInfo.GetAll(siteGuid); foreach (LetterInfo letter in all) { if (WebUser.IsInRoles(letter.AvailableToRoles)) { available.Add(letter); } } return(available); }
public static List <LetterInfo> GetAvailableNewslettersForSiteMembers(Guid siteGuid) { List <LetterInfo> available = new List <LetterInfo>(); List <LetterInfo> all = LetterInfo.GetAll(siteGuid); foreach (LetterInfo letter in all) { if ((letter.AvailableToRoles.Contains("All Users")) || (letter.AvailableToRoles.Contains("Authenticated Users"))) { available.Add(letter); } } return(available); }
private void PopulateControls() { var letterInfoList = LetterInfo.GetAll(siteSettings.SiteGuid); try { litLetters.Text = RazorBridge.RenderPartialToString("_Admin", letterInfoList, "eletter"); } catch (System.Web.HttpException ex) { log.ErrorFormat( "layout for Newsletter _Admin was not found in skin {0}. perhaps it is in a different skin. Error was: {1}", SiteUtils.GetSkinBaseUrl(true, Page), ex ); } }
/// <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); } } RemoveDuplicates(userSubscriptions); if (userSubscriptions.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); } } } }