public async Task <IActionResult> Index(int id = 0, int pageId = 1, int unread = 0) { var messageIds = await TopicRepository.GetIndexIds(id, pageId, unread); var morePages = true; if (messageIds.Count < UserContext.ApplicationUser.TopicsPerPage) { morePages = false; } var topicPreviews = await TopicRepository.GetPreviews(messageIds); var boardRecord = id == 0 ? null : (await BoardRepository.Records()).FirstOrDefault(record => record.Id == id); var viewModel = new PageModels.TopicIndexPage { BoardId = id, BoardName = boardRecord?.Name ?? "All Topics", CurrentPage = pageId, Topics = topicPreviews, UnreadFilter = unread, MorePages = morePages }; return(await ForumViewResult.ViewResult(this, viewModel)); }
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)); }
public IActionResult Merge(int id) { var record = DbContext.Messages.FirstOrDefault(item => item.Id == id); if (record is null) { throw new HttpNotFoundError(); } var topicPreviews = TopicRepository.GetPreviews(0, 1, 0); foreach (var topicPreview in topicPreviews.ToList()) { if (topicPreview.Id == id) { topicPreviews.Remove(topicPreview); } else { topicPreview.SourceId = id; } } var viewModel = new PageModels.TopicIndexPage { SourceId = id, BoardName = "Pick a Destination Topic", BoardId = 0, Page = 1, Topics = topicPreviews, }; return(ForumViewResult.ViewResult(this, viewModel)); }
public async Task <IActionResult> Merge(int id, int pageId = 1) { var record = DbContext.Messages.FirstOrDefault(item => item.Id == id); if (record is null) { throw new HttpNotFoundError(); } var messageIds = await TopicRepository.GetIndexIds(0, pageId, 0); var morePages = true; if (messageIds.Count < UserContext.ApplicationUser.TopicsPerPage) { morePages = false; } var topicPreviews = await TopicRepository.GetPreviews(messageIds); foreach (var topicPreview in topicPreviews.ToList()) { if (topicPreview.Id == id) { topicPreviews.Remove(topicPreview); } else { topicPreview.SourceId = id; } } var viewModel = new PageModels.TopicIndexPage { SourceId = id, BoardName = "Pick a Destination Topic", BoardId = 0, CurrentPage = pageId, Topics = topicPreviews, MorePages = morePages }; return(await ForumViewResult.ViewResult(this, viewModel)); }