public async Task <IActionResult> DisplayPartial(int id, long latest) { var latestTime = new DateTime(latest); var topic = DbContext.Topics.Find(id); if (topic is null || topic.Deleted) { throw new HttpNotFoundError(); } await BoardRepository.GetTopicBoards(id); var messageIds = MessageRepository.GetMessageIds(id, latestTime); var messages = await MessageRepository.GetMessages(messageIds); var latestMessageTime = messages.Max(r => r.RecordTime); await TopicRepository.MarkRead(id, latestMessageTime, messageIds); var viewModel = new ViewModels.Topics.TopicDisplayPartialPage { Latest = DateTime.Now.Ticks, Messages = messages }; return(await ForumViewResult.ViewResult(this, "DisplayPartial", viewModel)); }
public async Task <IActionResult> Display(int id) { var message = DbContext.Messages.Find(id); if (message is null || message.Deleted) { throw new HttpNotFoundError(); } var topicId = message.TopicId; await BoardRepository.GetTopicBoards(topicId); var messageIds = new List <int> { id }; var messages = await MessageRepository.GetMessages(messageIds); var viewModel = new ViewModels.Topics.TopicDisplayPartialPage { Latest = DateTime.Now.Ticks, Messages = messages }; return(await ForumViewResult.ViewResult(this, "../Topics/DisplayPartial", viewModel)); }