public override void ViewDidLoad() { Title = "Commits".t(); Root.UnevenRows = true; base.ViewDidLoad(); var vm = (CommitsViewModel) ViewModel; BindCollection(vm.Commits, x => { var msg = x.Commit.Message ?? string.Empty; var firstLine = msg.IndexOf("\n", StringComparison.Ordinal); var desc = firstLine > 0 ? msg.Substring(0, firstLine) : msg; string login; var date = DateTimeOffset.MinValue; if (x.Committer != null) login = x.Committer.Login; else if (x.Author != null) login = x.Author.Login; else if (x.Commit.Committer != null) login = x.Commit.Committer.Name; else login = "******"; if (x.Commit.Committer != null) date = x.Commit.Committer.Date; var el = new NameTimeStringElement { Name = login, Time = date.ToDaysAgo(), String = desc, Lines = 4 }; el.Tapped += () => vm.GoToChangesetCommand.Execute(x); return el; }); }
public override void ViewDidLoad() { Title = "Commits".t(); Root.UnevenRows = true; base.ViewDidLoad(); var vm = (PullRequestCommitsViewModel) ViewModel; BindCollection(vm.Commits, x => { var msg = x.Message ?? string.Empty; var firstLine = msg.IndexOf("\n", StringComparison.Ordinal); var desc = firstLine > 0 ? msg.Substring(0, firstLine) : msg; string username; if (x.Author.User != null) username = x.Author.User.DisplayName ?? x.Author.User.Username; else { var bracketStart = x.Author.Raw.IndexOf("<", StringComparison.Ordinal); username = x.Author.Raw.Substring(0, bracketStart > 0 ? bracketStart : x.Author.Raw.Length); } var el = new NameTimeStringElement { Name = username, Time = x.Date.ToDaysAgo(), String = desc, Lines = 4 }; el.Tapped += () => vm.GoToChangesetCommand.Execute(x); return el; }); }
public override void ViewDidLoad() { base.ViewDidLoad(); var vm = (PullRequestsViewModel)ViewModel; _segmentBarButton.Width = View.Frame.Width - 10f; var set = this.CreateBindingSet<PullRequestsView, PullRequestsViewModel>(); set.Bind(_viewSegment).To(x => x.SelectedFilter); set.Apply(); BindCollection(vm.PullRequests, s => { var sse = new NameTimeStringElement { Name = s.Title, String = s.Description.Replace('\n', ' ').Replace("\r", ""), Lines = 3, Time = s.UpdatedOn.ToDaysAgo(), Image = Theme.CurrentTheme.AnonymousUserImage, ImageUri = new Uri(s.Author.Links.Avatar.Href) }; sse.Tapped += () => vm.GoToPullRequestCommand.Execute(s); return sse; }); }
public override void ViewDidLoad() { Title = "Commits".t(); Root.UnevenRows = true; base.ViewDidLoad(); var vm = (CommitsViewModel) ViewModel; BindCollection(vm.Commits, x => { var msg = x.Message ?? string.Empty; var firstLine = msg.IndexOf("\n", StringComparison.Ordinal); var desc = firstLine > 0 ? msg.Substring(0, firstLine) : msg; var el = new NameTimeStringElement { Name = x.Author, Time = x.Utctimestamp.ToDaysAgo(), String = desc, Lines = 4 }; el.Tapped += () => vm.GoToChangesetCommand.Execute(x); return el; }); }
public override void ViewDidLoad() { NoItemsText = "No Gists".t(); base.ViewDidLoad(); var vm = (GistsViewModel) ViewModel; BindCollection(vm.Gists, x => { var str = string.IsNullOrEmpty(x.Description) ? "Gist " + x.Id : x.Description; var sse = new NameTimeStringElement { Time = x.UpdatedAt.ToDaysAgo(), String = str, Lines = 4, Image = Theme.CurrentTheme.AnonymousUserImage }; sse.Name = (x.User == null) ? "Anonymous" : x.User.Login; sse.ImageUri = (x.User == null) ? null : new Uri(x.User.AvatarUrl); sse.Tapped += () => vm.GoToGistCommand.Execute(x); return sse; }); }
private void AddItems(RootElement root, List<ChangesetModel> changes) { var sec = new Section(); changes.ForEach(x => { var desc = (x.Message ?? "").Replace("\n", " ").Trim(); var el = new NameTimeStringElement { Name = x.Author, Time = (x.Utctimestamp), String = desc, Lines = 4 }; el.Tapped += () => NavigationController.PushViewController(new ChangesetInfoController(User, Slug, x.Node), true); sec.Add(el); }); if (sec.Count > 0) { InvokeOnMainThread(delegate { root.Insert(root.Count - 1, sec); }); } }
public void RenderGist() { if (ViewModel.Gist == null) return; var model = ViewModel.Gist; _shareButton.Enabled = _userButton.Enabled = model != null; var root = new RootElement(Title) { UnevenRows = true }; var sec = new Section(); root.Add(sec); var str = string.IsNullOrEmpty(model.Description) ? "Gist " + model.Id : model.Description; var d = new NameTimeStringElement() { Time = model.UpdatedAt.ToDaysAgo(), String = str, Image = Theme.CurrentTheme.AnonymousUserImage }; //Sometimes there's no user! d.Name = (model.User == null) ? "Anonymous" : model.User.Login; d.ImageUri = (model.User == null) ? null : new Uri(model.User.AvatarUrl); sec.Add(d); var sec2 = new Section("Files"); root.Add(sec2); foreach (var file in model.Files.Keys) { var sse = new StyledStringElement(file, model.Files[file].Size + " bytes", UITableViewCellStyle.Subtitle) { Accessory = UITableViewCellAccessory.DisclosureIndicator, LineBreakMode = UILineBreakMode.TailTruncation, Lines = 1 }; var fileSaved = file; var gistFileModel = model.Files[fileSaved]; // if (string.Equals(gistFileModel.Language, "markdown", StringComparison.OrdinalIgnoreCase)) // sse.Tapped += () => ViewModel.GoToViewableFileCommand.Execute(gistFileModel); // else sse.Tapped += () => ViewModel.GoToFileSourceCommand.Execute(gistFileModel); sec2.Add(sse); } if (ViewModel.Comments.Items.Count > 0) { var sec3 = new Section("Comments"); foreach (var comment in ViewModel.Comments) { var el = new NameTimeStringElement { Name = "Anonymous", Image = Theme.CurrentTheme.AnonymousUserImage, String = comment.Body, Time = comment.CreatedAt.ToDaysAgo(), }; if (comment.User != null) { el.Name = comment.User.Login; el.ImageUri = new Uri(comment.User.AvatarUrl); } sec3.Add(el); } root.Add(sec3); } Root = root; }