public CommitsViewModel( Person person, Sprint sprint, SvnCommitRepository commitRepository, Func<SvnCommit, CommitViewModel> commitViewModelFactory ) { this.Commits = new ObservableCollection<CommitViewModel>(); this.ShowHeader = Visibility.Collapsed; commitRepository.ListCommitsObservable(TimeSpan.FromDays(7)).ObserveOnDispatcher().Subscribe( result => { this.Commits.Clear(); foreach (var eventArg in result.Where(r=>r.Author.Contains(person.Login))) { this.Commits.Add(commitViewModelFactory(eventArg)); } ShowHeader = this.Commits.Any() ? Visibility.Visible : Visibility.Collapsed; }); }
public PersonDetailsViewModel(Project project, Sprint sprint, Person person, UserRepository userRepository, IssueRepository issueRepository, Func<IEnumerable<Issue>, IssueStatisticsViewModel> issueStatisticsFactory, Func<Sprint, Person, CommitsViewModel> commitsFactory ) { _userRepository = userRepository; this.issueRepository = issueRepository; _issueStatisticsFactory = issueStatisticsFactory; Person = person; issueRepository.SearchObservable(project, sprint) .Subscribe(r => IssueStatistics = issueStatisticsFactory(r.Where(issue =>issue.Assignee != null && issue.Assignee.Login == person.Login)) ); Commits = commitsFactory(sprint, person); }
public GetAvatarRequest(Person person) : base("/user/{user}") { AddUrlSegment("user", person.Login); }