public static ViewForumModel ConvertToViewForumModel(this Forum forum, bool includeTopics, bool publicOnly) { ViewForumModel returnValue = new ViewForumModel() { ForumId = forum.ForumId, ForumTitle = forum.ForumTitle, IsPublic = forum.IsPublic }; if (includeTopics) { returnValue.ForumTopics = new List<ForumTopicModel>(); if (publicOnly) { foreach (ForumTopic topic in forum.ForumTopics.Where(FT => FT.IsPublic).OrderBy(FT => FT.TopicTitle)) returnValue.ForumTopics.Add(topic.ConvertToForumTopicModel()); } else { foreach (ForumTopic topic in forum.ForumTopics.OrderBy(FT => FT.TopicTitle)) returnValue.ForumTopics.Add(topic.ConvertToForumTopicModel()); } } return returnValue; }
public ActionResult ViewForum(Guid forumId) { ViewForumModel viewForumModel = new ViewForumModel(){}; using (CGWebEntities entities = new CGWebEntities()) { Forum currentForum = entities.Forums.Where(F => F.ForumId.Equals(forumId)).Single(); if (!currentForum.IsPublic && !Request.IsAuthenticated) return RedirectToAction("Login", "Account"); if (Request.IsAuthenticated) { viewForumModel = currentForum.ConvertToViewForumModel(true, false); } else { viewForumModel = currentForum.ConvertToViewForumModel(true, true); } } return View(viewForumModel); }