public ShowcasesViewModel(INetworkActivityService networkActivity, ShowcaseRepository showcaseRepository) { GoToShowcaseCommand = ReactiveCommand.Create(); GoToShowcaseCommand.OfType<Showcase>().Subscribe(x => { var vm = CreateViewModel<ShowcaseViewModel>(); vm.ShowcaseSlug = x.Slug; vm.Title = x.Name; ShowViewModel(vm); }); var showcases = new ReactiveList<Showcase>(); Showcases = showcases; LoadCommand = ReactiveCommand.CreateAsyncTask(async t => showcases.Reset(await showcaseRepository.GetShowcases())); LoadCommand.TriggerNetworkActivity(networkActivity); }
public ShowcaseViewModel(INetworkActivityService networkActivity, ShowcaseRepository showcaseRepository) { Title = "Showcase"; GoToRepositoryCommand = ReactiveCommand.Create(); GoToRepositoryCommand.OfType<Octokit.Repository>().Subscribe(x => { var vm = CreateViewModel<RepositoryViewModel>(); vm.RepositoryIdentifier = new BaseRepositoryViewModel.RepositoryIdentifierModel(x.Owner.Login, x.Name); ShowViewModel(vm); }); var repositories = new ReactiveList<Octokit.Repository>(); Repositories = repositories; LoadCommand = ReactiveCommand.CreateAsyncTask(async t => { var showcaseRepos = await showcaseRepository.GetShowcaseRepositories(ShowcaseSlug); Title = showcaseRepos.Name; Showcase = new Showcase {Slug = showcaseRepos.Slug, Description = showcaseRepos.Description, Name = showcaseRepos.Name}; repositories.Reset(showcaseRepos.Repositories); }); LoadCommand.TriggerNetworkActivity(networkActivity); }