Exemplo n.º 1
0
        public IActionResult Index(int id = 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 sidebar = new ViewModels.Sidebar {
                Birthdays     = AccountRepository.GetBirthdaysList().ToArray(),
                OnlineUsers   = AccountRepository.GetOnlineList(),
                Notifications = NotificationRepository.Index()
            };

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

            var boardRecord = id == 0 ? null : BoardRepository.FirstOrDefault(record => record.Id == id);

            var viewModel = new PageModels.TopicIndexPage {
                BoardId      = id,
                BoardName    = boardRecord?.Name ?? "All Topics",
                Page         = page,
                Topics       = topicPreviews,
                UnreadFilter = unread,
                Sidebar      = sidebar
            };

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