private void InitializeRunTime(IController controller, IVersionService versionService) { try { this.SelectedGraphTimeSpan = this.GraphTimeSpans.FirstOrDefault(); this.idleMonitoringTimer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) }; this.idleMonitoringTimer.Tick += (sender, args) => { this.IdleTime = this.idleTimeProvider.IdleTime; }; this.controller = controller; this.controller.Connected += (s, e) => { this.IsConnected = true; }; this.controller.Disconnected += (s, e) => { this.IsConnected = false; }; this.controller.Message += (s, e) => { AddMessage(e.Message); }; this.controller.Summary += (s, e) => { UpdateSummaryData(e.Summary); }; this.IsImportantProcessDetected = this.controller.ImportantProcessDetected; this.processCheckTimer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) }; this.processCheckTimer.Tick += (s, e) => this.IsImportantProcessDetected = this.controller.ImportantProcessDetected; this.processCheckTimer.Start(); this.ConfigureDesiredMinerStatus(MinerProcessStatus.Running); #if !DEBUG versionService.IsUpdateAvailableAsync(available => this.IsUpdateAvailable = available); #endif } catch (Exception e) { AddMessage(e.Message); #if DEBUG throw; #endif } }