private QuestionBlockViewModel CreateQuestionBlock(StackExchangeSite site, int questionCount) { var block = new QuestionBlockViewModel(_api, site); block.ReloadQuestions.Execute(questionCount).Subscribe(); return(block); }
public QuestionBlockViewModel(Api api, StackExchangeSite site) { Questions = new ReactiveList <Question>(); Site = site; ReloadQuestions = ReactiveCommand.CreateFromTask <int, QuestionList>(questionCount => api.GetQuestions(site.api_site_parameter, questionCount)); ReloadQuestions.ThrownExceptions.BindTo(this, vm => vm.LatestException); ReloadQuestions.Subscribe(UpdateQuestions); }
private IObservable <Unit> ToggleSelected(StackExchangeSite site) { if (site.IsSelected) { SelectedSites.Add(site); } else { SelectedSites.Remove(site); } var hashSet = new HashSet <string>(SelectedSites.Select(s => s.api_site_parameter)); return(BlobCache.UserAccount.InsertObject(_selectedSitesCacheKey, hashSet)); }