public void SendNewTopicSubscriptionMail(string forumName, string forumTitle, string forumBody, string topicLink)
        {
            var account = new AccountInfo();
            var departmentMapping = DepartmentService.GetDepartmentForumMappings(forumName);
            var result = GetModeratorEmailIds(forumName);

            var employees = ContactsService.GetByDepartmentOrlocation(departmentMapping);

            var departmentMails = employees.Aggregate(string.Empty, (current, subscription) => current + "," + subscription.Email);
            var subscriptionModel = GetAllSubscribedUsers(forumName);

            var mailIds = subscriptionModel.Aggregate(string.Empty, (current, subscription) => current + "," + subscription.EmployeeEmail);
            mailIds = mailIds + "," + departmentMails;
            var distinctWords = new List<string>(mailIds.ToLowerInvariant().Split(',').Distinct());
            
            mailIds = result.Aggregate(
                distinctWords.Where(t => !string.IsNullOrEmpty(t)).Aggregate(string.Empty,
                (current, t) => current + "," + t), 
                (current, moderators) => current.Replace("," + moderators.ToLowerInvariant(), string.Empty));

            var emailHelper = new EmailHelper();
            var paramters = new Dictionary<string, string>
                {
                    {"ForumName", forumName.Trim()},
                    {"TopicName", forumTitle.Trim()},
                    {"TipicLink", topicLink.Trim()},
                    {"ForumBody", forumBody.Trim()},
                    {"CreatedBy", account.GetFullName()},
                    {"Signature", ApplicationConfiguration.EmailSignature}
                };
            if (!string.IsNullOrEmpty(mailIds))
                emailHelper.SendBccMail("", mailIds, "NewTopicSubscription", paramters);
        }
        public void SendReplySubscriptionMail(string forumName, string forumTitle, string forumBody, string topicLink)
        {
            var account = new AccountInfo();
            forumBody = forumBody.Substring(0, 8) + " <b> Reply : </b>" + forumBody.Substring(8, forumBody.Length - 8);
            var departmentMapping = DepartmentService.GetDepartmentForumMappings(forumName);

            var employees = ContactsService.GetByDepartmentOrlocation(departmentMapping);

            var departmentMails = employees.Aggregate(string.Empty, (current, subscription) => current + "," + subscription.Email);
            var subscriptionModel = GetAllSubscribedUsers(forumName);

            var mailIds = subscriptionModel.Aggregate(string.Empty, (current, subscription) => current + "," + subscription.EmployeeEmail);
            mailIds = mailIds + "," + departmentMails;
            var distinctWords = new List<string>(mailIds.ToLowerInvariant().Split(',').Distinct());
            mailIds = distinctWords.Where(t => !string.IsNullOrEmpty(t)).Aggregate(string.Empty, (current, t) => current + "," + t);

            var emailHelper = new EmailHelper();
            var paramters = new Dictionary<string, string>
                {
                    {"ForumTitle", forumName + " : " +forumTitle.Trim()},
                    {"ForumBody", forumBody.Trim()},
                    {"PostedBy", account.GetFullName()},
                    {"TipicLink", topicLink.Trim()},
                    {"Signature", ApplicationConfiguration.EmailSignature}
                };
            if (!string.IsNullOrEmpty(mailIds))
                emailHelper.SendBccMail("", mailIds, "CommentsSubscription", paramters);
        }
        public void SendNewTopicMailToModerator(string topicForumPath, string topicTitle, string topicBody, string topicForum, string topicLink)
        {
            var account = new AccountInfo();
            var result = GetModeratorEmailIds(topicForumPath);
            var moderatorEmails = string.Join(",", result);
            var sendMail = new EmailHelper();

            var paramters = new Dictionary<string, string>
                                {
                                    {"TopicTitle", topicTitle.Trim()},
                                    {"TopicBody", topicBody.Trim()},
                                    {"TipicLink", topicLink.Trim()},
                                    {"TopicForum", topicForum },
                                    {"Requestor", account.GetFullName()},
                                    {"Signature", ApplicationConfiguration.EmailSignature}
                                };
            if (!string.IsNullOrEmpty(moderatorEmails))
                sendMail.SendBccMail("", moderatorEmails, "ForumNewTopicRequest", paramters);
        }