public IObservable <IEnumerable <Histogram> > AnalyzeAsync(SignalNotifier isCreating) { return(Observable.Start(() => { isCreating.Increment(); var ret = Analyzer.CreateHistogram(); var ymax = ret.Max(x => x.Tally); if (ymax > 10) { YAxisInterval = (int)(ymax / 10); } else { // 小数点表示したくないので、Intervalの最小値は1 YAxisInterval = 1; } // グラフ表示に少し余裕を持たせたいので20%分余白をつくる。 YAxisMaximum = ymax * 1.2; return ret; }) .Finally(() => isCreating.Decrement()) .Catch((Exception ex) => Messenger.Raise(new InformationMessage("データ解析に失敗しました。", "エラー", "ShowError")))); }
/// <summary> /// 非同期でデータベースの検索を行う /// </summary> private IObservable <IEnumerable <RecordDescription> > SearchAsync(SignalNotifier isSearching) { isSearching.Increment(); // 検索中 var condition = new SearchCondition() { DataType = DataType, ComponentType = ComponentType, PortName = PortName, StartDateTime = StartDate, EndDateTime = EndDate }; return(Observable.Start(() => { //SearchResults.Clear(); var ret = _recordDescriptionRepository.GetRecordDescriptions(condition); //isSearching.Decrement(); //検索完了 return ret; }) .Finally(() => isSearching.Decrement()) .Catch((Exception ex) => Messenger.Raise(new InformationMessage("データベースアクセスに失敗しました。", "エラー", "ShowError")))); }
public IObservable<IEnumerable<Histogram>> AnalyzeAsync(SignalNotifier isCreating) { return Observable.Start(() => { isCreating.Increment(); var ret = Analyzer.CreateHistogram(); var ymax = ret.Max(x => x.Tally); if (ymax > 10) { YAxisInterval = (int)(ymax/10); } else { // 小数点表示したくないので、Intervalの最小値は1 YAxisInterval = 1; } // グラフ表示に少し余裕を持たせたいので20%分余白をつくる。 YAxisMaximum = ymax * 1.2; return ret; }) .Finally(() => isCreating.Decrement()) .Catch((Exception ex) => Messenger.Raise(new InformationMessage("データ解析に失敗しました。", "エラー", "ShowError"))); }
/// <summary> /// 非同期でデータベースの検索を行う /// </summary> private IObservable<IEnumerable<RecordDescription>> SearchAsync(SignalNotifier isSearching) { isSearching.Increment(); // 検索中 var condition = new SearchCondition() { DataType = DataType, ComponentType = ComponentType, PortName = PortName, StartDateTime = StartDate, EndDateTime = EndDate }; return Observable.Start(() => { //SearchResults.Clear(); var ret = _recordDescriptionRepository.GetRecordDescriptions(condition); //isSearching.Decrement(); //検索完了 return ret; }) .Finally(() => isSearching.Decrement()) .Catch((Exception ex) => Messenger.Raise(new InformationMessage("データベースアクセスに失敗しました。", "エラー", "ShowError"))); }