public ConnectivityStatusViewModel( IReactiveTrader reactiveTrader, IConcurrencyService concurrencyService, ILoggerFactory loggerFactory, IProcessorMonitor processorMonitor) { _processorMonitor = processorMonitor; _priceLatencyRecorder = reactiveTrader.PriceLatencyRecorder; var log = loggerFactory.Create(typeof(ConnectivityStatusViewModel)); if (!_processorMonitor.IsAvailable) { CpuPercent = "N/A"; CpuTime = "N/A"; } _subscriptions.Add(reactiveTrader.ConnectionStatusStream .ObserveOn(concurrencyService.Dispatcher) .SubscribeOn(concurrencyService.TaskPool) .Subscribe( OnStatusChange, ex => log.Error("An error occurred within the connection status stream.", ex))); _subscriptions.Add(Observable .Interval(StatsFrequency, concurrencyService.Dispatcher) .Subscribe(_ => OnTimerTick())); }
public ConnectivityStatusViewModel( IReactiveTrader reactiveTrader, IConcurrencyService concurrencyService, ILoggerFactory loggerFactory, IProcessorMonitor processorMonitor) { _processorMonitor = processorMonitor; _priceLatencyRecorder = reactiveTrader.PriceLatencyRecorder; var log = loggerFactory.Create(typeof (ConnectivityStatusViewModel)); if (!_processorMonitor.IsAvailable) { CpuPercent = "N/A"; CpuTime = "N/A"; } _subscriptions.Add(reactiveTrader.ConnectionStatusStream .ObserveOn(concurrencyService.Dispatcher) .SubscribeOn(concurrencyService.TaskPool) .Subscribe( OnStatusChange, ex => log.Error("An error occurred within the connection status stream.", ex))); _subscriptions.Add(Observable .Interval(StatsFrequency, concurrencyService.Dispatcher) .Subscribe(_ => OnTimerTick())); }