public ViewThreadViewModel Thread(ViewThreadRequest request)
        {
            _taskQueue.ExecuteLater(new RecordThreadViewTask(request));

            var thread = _session.Load<DiscussionThread>(DiscussionThread.Key(request.UriId));
            var replies = _session.Query<Post>().Where(x => x.ThreadId == thread.Id).ToList();

            var userKeys = new List<string> { UserAccount.Key(thread.AuthorUsername) };
            userKeys.AddRange(replies.Select(x => UserAccount.Key(x.Username)).Distinct().ToList());
            var users = _session.Load<UserAccount>(userKeys).ToList();

            var viewModel = _mapper.Map<DiscussionThread, ViewThreadViewModel>(thread);
            foreach (var reply in replies)
            {
                var user = users.First(x => x.Username == reply.Username);
                var replyModel = new ViewThreadReplyViewModel
                                     {
                                         DisplayBody = reply.DisplayText,
                                         Username = reply.Username,
                                         UserProfilePictureUrl = user.ProfilePictureUrl
                                     };
                viewModel.Replies.Add(replyModel);
            }

            return viewModel;
        }
 public ViewThreadReplyViewModel ReplyPassThrough(ViewThreadReplyViewModel model)
 {
     return model;
 }