Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
                    }
                }
            }
        }