public IObservable<Unit> ToggleRepoWatch(IRepoModel repo) { var url = repo.Dto.Url.ToString(); if (_watchedRepos.Contains(url)) { _watchedRepos.Remove(url); _signalRClientService.UnWatchRepo(repo.Dto); repo.IsWatched = false; } else { _watchedRepos.Add(url); _signalRClientService.WatchRepo(repo.Dto); repo.IsWatched = true; } return Observable.Create<Unit>(obs => { //TODO stop or start watching call service obs.OnNext(Unit.Default); obs.OnCompleted(); return Disposable.Empty; }); }
private void ToggleWatchRepo(IRepoModel repo) { IsLoading = true; _repoService.ToggleRepoWatch(repo) .SubscribeOn(_scheduleProvider.TaskPool) .ObserveOn(_scheduleProvider.UiScheduler) .Subscribe(_ => IsLoading = false); }
private void NavigateToCommits(IRepoModel repo) { var parameters = new NavigationParameters(); parameters.Add("repo", repo); parameters.Add("user", User); _navigationService.Navigate<CommitsPageViewModel>(parameters); }