示例#1
0
        public void RenderComments()
        {
            var comments = ViewModel.Comments
                           .Select(x => new Comment(x.User.AvatarUrl, x.User.Login, ViewModel.ConvertToMarkdown(x.Body), x.CreatedAt))
                           .Concat(ViewModel.Events.Select(x => new Comment(x.Actor.AvatarUrl, x.Actor.Login, CreateEventBody(x.Event, x.CommitId), x.CreatedAt)))
                           .Where(x => !string.IsNullOrEmpty(x.Body))
                           .OrderBy(x => x.Date)
                           .ToList();
            var commentModel = new CommentModel(comments, (int)UIFont.PreferredSubheadline.PointSize);
            var razorView    = new CommentsView {
                Model = commentModel
            };
            var html = razorView.GenerateString();

            InvokeOnMainThread(() => {
                _commentsElement.SetValue(!comments.Any() ? null : html);
                Render();
            });
        }
示例#2
0
        private IEnumerable <CommentModel> CreateCommentList()
        {
            var items = ViewModel.Comments.Select(x => new CommentModel
            {
                AvatarUrl = x.User.AvatarUrl,
                Login     = x.User.Login,
                CreatedAt = x.CreatedAt,
                Body      = ViewModel.ConvertToMarkdown(x.Body)
            })
                        .Concat(ViewModel.Events.Select(x => new CommentModel
            {
                AvatarUrl = x.Actor.AvatarUrl,
                Login     = x.Actor.Login,
                CreatedAt = x.CreatedAt,
                Body      = CreateEventBody(x.Event, x.CommitId)
            })
                                .Where(x => !string.IsNullOrEmpty(x.Body)));

            return(items.OrderBy(x => x.CreatedAt));
        }