Esempio n. 1
0
        public virtual ActionResult Topic(int id, int page = 1)
        {
            if (!_forumSettings.ForumsEnabled)
            {
                return(RedirectToRoute("HomePage"));
            }

            var forumTopic = _forumService.GetTopicById(id);

            if (forumTopic == null)
            {
                return(RedirectToRoute("Boards"));
            }

            var model = _forumModelFactory.PrepareForumTopicPageModel(forumTopic, page);

            //if no posts loaded, redirect to the first page
            if (!model.ForumPostModels.Any() && page > 1)
            {
                return(RedirectToRoute("TopicSlug", new { id = forumTopic.Id, slug = forumTopic.GetSeName() }));
            }

            //update view count
            forumTopic.Views += 1;
            _forumService.UpdateTopic(forumTopic);

            return(View(model));
        }