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)); }