Example #1
0
        public IActionResult MergeMore(int id, int page = 0)
        {
            var record = DbContext.Messages.FirstOrDefault(item => item.Id == id);

            if (record is null)
            {
                throw new HttpNotFoundError();
            }

            var topicPreviews = TopicRepository.GetPreviews(0, page, 0);

            foreach (var topicPreview in topicPreviews.ToList())
            {
                if (topicPreview.Id == id)
                {
                    topicPreviews.Remove(topicPreview);
                }
                else
                {
                    topicPreview.SourceId = id;
                }
            }

            var viewModel = new PageModels.TopicIndexMorePage {
                More   = topicPreviews.Any(),
                Page   = page,
                Topics = topicPreviews
            };

            return(ForumViewResult.ViewResult(this, viewModel));
        }
Example #2
0
        public IActionResult IndexMore(int id = 0, int page = 0, int unread = 0)
        {
            var boardRoles = RoleRepository.BoardRoles.Where(r => r.BoardId == id).Select(r => r.RoleId).ToList();

            if (!UserContext.IsAdmin && boardRoles.Any() && !boardRoles.Intersect(UserContext.Roles).Any())
            {
                throw new HttpForbiddenError();
            }

            var topicPreviews = TopicRepository.GetPreviews(id, page, unread);

            var viewModel = new PageModels.TopicIndexMorePage {
                More   = topicPreviews.Any(),
                Page   = page,
                Topics = topicPreviews
            };

            return(ForumViewResult.ViewResult(this, viewModel));
        }