private void UserAccountEncouragement(User user, string additionalData = null)
        {
            if (!user.EnableEmail.GetValueOrDefault(true))
            {
                return;
            }

            EmailHealthEncouragementContainer emailDigestContainer = new EmailHealthEncouragementContainer();

            PublicApi.Users.RunAsUser(user.Username, () =>
            {
                emailDigestContainer.ContentRecommendations = PublicApi.ContentRecommendations.List(new ContentRecommendationsListOptions()
                {
                    PageSize       = 25,
                    PageIndex      = 0,
                    ContentTypeIds = new Guid[] { PublicApi.BlogPosts.ContentTypeId, PublicApi.ForumThreads.ContentTypeId, PublicApi.Media.ContentTypeId, PublicApi.WikiPages.ContentTypeId, PublicApi.ForumReplies.ContentTypeId }
                }).ToList();
            });

            TemplateContext templateContext = new TemplateContext(new Dictionary <Guid, object>()
            {
                { PublicApi.Users.ContentTypeId, user },
                { EmailHealthEncouragementContainer.DateTypeId, emailDigestContainer }
            });

            PublicApi.Users.RunAsUser(user.Username, () =>
            {
                var mailTempalte = Telligent.Evolution.Extensibility.Version1.PluginManager.GetSingleton <UserEncouragementEmailTemplate>();

                if (mailTempalte != null)
                {
                    var mailOptions = mailTempalte.GetSendMailOptions(user.Id.GetValueOrDefault(), templateContext);

                    if (additionalData != null)
                    {
                        var attachments = new List <System.Net.Mail.Attachment>();

                        byte[] byteArray = Encoding.UTF8.GetBytes(additionalData);

                        var attachment =
                            new System.Net.Mail.Attachment(new MemoryStream(byteArray),
                                                           new System.Net.Mime.ContentType("text/plain; charset=us-ascii"));

                        attachment.ContentDisposition.DispositionType = "attachment";
                        attachment.ContentDisposition.FileName        = "userlist.txt";
                        attachment.ContentDisposition.Size            = byteArray.Length;

                        attachments.Add(attachment);

                        mailOptions.Attachments = attachments;
                    }

                    PublicApi.SendEmail.Send(mailOptions);
                }
            });
        }
        private void UserAccountEncouragement(User user , string additionalData = null)
        {
            if (!user.EnableEmail.GetValueOrDefault(true))
                return;

            EmailHealthEncouragementContainer emailDigestContainer = new EmailHealthEncouragementContainer();

            PublicApi.Users.RunAsUser(user.Username, () =>
            {
                emailDigestContainer.ContentRecommendations = PublicApi.ContentRecommendations.List(new ContentRecommendationsListOptions()
                {
                    PageSize = 25,
                    PageIndex = 0,
                    ContentTypeIds = new Guid[] { PublicApi.BlogPosts.ContentTypeId, PublicApi.ForumThreads.ContentTypeId, PublicApi.Media.ContentTypeId, PublicApi.WikiPages.ContentTypeId, PublicApi.ForumReplies.ContentTypeId }
                }).ToList();
            });

            TemplateContext templateContext = new TemplateContext(new Dictionary<Guid, object>()
                    {
                        { PublicApi.Users.ContentTypeId, user },
                        { EmailHealthEncouragementContainer.DateTypeId, emailDigestContainer }
                    });

            PublicApi.Users.RunAsUser(user.Username, () =>
            {
                var mailTempalte = Telligent.Evolution.Extensibility.Version1.PluginManager.GetSingleton<UserEncouragementEmailTemplate>();

                if (mailTempalte != null)
                {
                    var mailOptions = mailTempalte.GetSendMailOptions(user.Id.GetValueOrDefault(), templateContext);

                    if (additionalData != null)
                    {
                        var attachments = new List<System.Net.Mail.Attachment>();

                        byte[] byteArray = Encoding.UTF8.GetBytes(additionalData);

                        var attachment =
                            new System.Net.Mail.Attachment(new MemoryStream(byteArray),
                                new System.Net.Mime.ContentType("text/plain; charset=us-ascii"));

                        attachment.ContentDisposition.DispositionType = "attachment";
                        attachment.ContentDisposition.FileName = "userlist.txt";
                        attachment.ContentDisposition.Size = byteArray.Length;

                        attachments.Add(attachment);

                        mailOptions.Attachments = attachments;
                    }

                    PublicApi.SendEmail.Send(mailOptions);
                }
            });
        }