예제 #1
0
        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));
        }
예제 #2
0
        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));
        }