예제 #1
0
        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);
 }