public ActionResult GetListofForums(string parent) { try { var forumsList = ForumService.GetListofForums(parent); var output = ConvertToForumDetailsListModel(forumsList); var forum = new ForumsDetailsModel(); if (null == parent) forum.IsRoot = true; forum.SubForums.AddRange(output); if (parent == null) return View("SingleForum", forum); forum = null; var names = parent.ForumSplit(); foreach (var item in names) { forum = (forum == null) ? output.FirstOrDefault(x => x.DisplayName == item) : forum.SubForums.FirstOrDefault(x => x.DisplayName == item); } if (forum == null) return View("SingleForum", null); var postForums = new ForumsDetails() { FolderPath = forum.ForumFullPath.StartWithSlash(), LibraryName = forum.ForumFullPath }; if (ForumService.IsForumExist(postForums)) { var topicResult = CreateList(ForumService.GetForumsList(postForums)); forum.Topic.AddRange(topicResult); forum.IsSPFolder = true; } foreach (var subforums in forum.SubForums) { var topics = new ForumsDetails() { FolderPath = subforums.ForumFullPath.StartWithSlash(), LibraryName = subforums.ForumFullPath }; if (ForumService.IsForumExist(topics)) subforums.TopicCount = ForumService.GetTopicCount(subforums.ForumFullPath); } return View("SingleForum", forum); } catch (Exception ex) { throw ex; } }
private void RemoveChildForums(ForumsDetailsModel forums) { var account = new AccountInfo(); SetFullNameAndEmail(); foreach (var forumItem in forums.SubForums) { var subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumItem.ForumFullPath, IsActive = true, IsDeleted = false, IsSubscribed = true, }; subscriptionModel = ForumSubscriptionService.GetSubscriptions(subscriptionModel); if (subscriptionModel != null) { subscriptionModel.IsActive = false; subscriptionModel.IsDeleted = true; ForumSubscriptionService.UpdateSubscription(subscriptionModel); } if (forumItem.SubForums.Count > 0) RemoveChildForums(forumItem); } }
private void WriteChildForums(ForumsDetailsModel forums, string email) { var account = new AccountInfo(); SetFullNameAndEmail(); foreach (var forumItem in forums.SubForums) { var subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeEmail = account.GetEmailAddress(), EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumItem.ForumFullPath, IsActive = true, IsDeleted = false, IsSubscribed = true, CreatedDate = DateTime.Now }; ForumSubscriptionService.InsertSubscription(subscriptionModel); if (forumItem.SubForums.Count > 0) WriteChildForums(forumItem, email); } }
private void WriteUpdateSubscription(string forumName, string email, string isSubscribed, bool subscribeParentOnly) { var account = new AccountInfo(); SetFullNameAndEmail(); #region Subscription database writing if (isSubscribed == "True") { var output = ConvertToForumDetailsListModel(ForumService.GetListofForums(forumName)); var forum = new ForumsDetailsModel(); forum.SubForums.AddRange(output); forum = null; var names = forumName.ForumSplit(); foreach (var item in names) { forum = (forum == null) ? output.FirstOrDefault(x => x.DisplayName == item) : forum.SubForums.FirstOrDefault(x => x.DisplayName == item); } var subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeEmail = account.GetEmailAddress(),//email, EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumName, IsActive = true, IsDeleted = false, IsSubscribed = true, CreatedDate = DateTime.Now }; ForumSubscriptionService.InsertSubscription(subscriptionModel); if (!subscribeParentOnly) { foreach (var forumItem in forum.SubForums) { subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeEmail = account.GetEmailAddress(), EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumItem.ForumFullPath, IsActive = true, IsDeleted = false, IsSubscribed = true, CreatedDate = DateTime.Now }; ForumSubscriptionService.InsertSubscription(subscriptionModel); WriteChildForums(forumItem, email); } } ForumSubscriptionService.SubscriptionRequestMail(forumName.ForumSplit().ForumJoin(), account.GetEmailAddress(), true); } #endregion #region un-Subscription database writing else if (isSubscribed == "False" && !subscribeParentOnly) { var output = ConvertToForumDetailsListModel(ForumService.GetListofForums(forumName)); var forum = new ForumsDetailsModel(); forum.SubForums.AddRange(output); forum = null; var names = forumName.ForumSplit(); foreach (var item in names) { forum = (forum == null) ? output.FirstOrDefault(x => x.DisplayName == item) : forum.SubForums.FirstOrDefault(x => x.DisplayName == item); } var subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeEmail = account.GetEmailAddress(), EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumName, IsActive = true, IsDeleted = false, IsSubscribed = true, }; subscriptionModel = ForumSubscriptionService.GetSubscriptions(subscriptionModel); if (subscriptionModel != null) { subscriptionModel.IsActive = false; subscriptionModel.IsDeleted = true; ForumSubscriptionService.UpdateSubscription(subscriptionModel); } foreach (var forumItem in forum.SubForums) { subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeEmail = account.GetEmailAddress(), EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumItem.ForumFullPath, IsActive = true, IsDeleted = false, IsSubscribed = true, }; subscriptionModel = ForumSubscriptionService.GetSubscriptions(subscriptionModel); if (subscriptionModel != null) { subscriptionModel.IsActive = false; subscriptionModel.IsDeleted = true; ForumSubscriptionService.UnsubscribeAllSubscriptions(subscriptionModel); } RemoveChildForums(forumItem); } ForumSubscriptionService.SubscriptionRequestMail(forumName.ForumSplit().ForumJoin(), account.GetEmailAddress(), false); } #endregion }
public void CreateTopicForForums(ForumsDetails forumsObj, ForumsDetailsModel toForumsDetailsModel) { foreach (var forums in forumsObj.Topic) { var subForumsTopicObj = ConvertToForumDetailsModel(forums); if (forums.Topic.Count > 0) CreateSubForums(forums, subForumsTopicObj); toForumsDetailsModel.Topic.Add(subForumsTopicObj); } }
public void CreateReply(ForumsDetails forumsObj, ForumsDetailsModel toForumsDetailsModel) { //This is used to fill Subforum model object foreach (var forums in forumsObj.SubForums) { var subForumsObj = ConvertToForumDetailsModel(forums); if (forums.SubForums.Count > 0) CreateSubForums(forums, subForumsObj); toForumsDetailsModel.SubForums.Add(subForumsObj); } //This is used to fill Topics model object which is added for forum foreach (var forums in forumsObj.Topic) { var forumTopicObj = ConvertToForumDetailsModel(forums); if (forums.Topic.Count > 0) CreateTopicForForums(forums, forumTopicObj); toForumsDetailsModel.Topic.Add(forumTopicObj); } //This is used to fill Reply model object which is added for topic foreach (var forums in forumsObj.Children) { var subReplyObj = ConvertToForumDetailsModel(forums); if (forums.Children.Count > 0) CreateReply(forums, subReplyObj); toForumsDetailsModel.Children.Add(subReplyObj); } }