public MainViewModel(IUIVisualizerService visualizerService, IViewAwareStatusWindow window, IMessageBoxService messageBoxService, IHartCommunicationLiteEx hartCommunication, IVersionService versionService) { _synchronizationContext = SynchronizationContext.Current; _settingsViewModel = new SettingsViewModel(); _visualizerService = visualizerService; _messageBoxService = messageBoxService; _hartCommunication = hartCommunication; _versionService = versionService; _versionService.GetOnlineVersionResult += (sender, onlineVersion) => { if (onlineVersion != new Version()) { Settings.Default.LastUpdateCheck = DateTime.Now; } if (versionService.GetCurrentVersion() < onlineVersion) { _synchronizationContext.Send(obj => _visualizerService.ShowDialog("UpdateViewModel", new UpdateViewModel(_versionService)), null); } }; window.ViewLoaded += () => { if (Settings.Default.ShowOnStartup) { _visualizerService.ShowDialog("SettingsViewModel", _settingsViewModel); } CheckUpdates(_versionService); }; window.ViewWindowClosed += () => { Settings.Default.Save(); Application.Current.Shutdown(); }; ReadSettings(); DataTransferModel = DataTransferModel.GetInstance(); InitCommands(); }