public InstallationSettingsViewModel(SettingsController controller) : base("INSTALLATION", controller) { RemoveInstallationCommand = new ReactiveCommand(SelectedInstall.Select(i => i != null), false); DetectInstallationsCommand.Subscribe(OnDetectInstallations); RemoveInstallationCommand.Subscribe(OnRemoveInstallation); AddInstallationCommand.Subscribe(OnAddInstallation); VerifyInstallationsCommand.Subscribe(OnVerifyInstallations); }
public InstallationsWizardStepViewModel(IContainer container) : base(container) { _settingsService = container.Resolve <ISettingsService>(); AddInstallationCommand.Subscribe(OnAddInstallation); DetectInstallationsCommand.Subscribe(OnDetectInstallations); RemoveInstallationCommand = new ReactiveCommand(SelectedInstall.Select(i => i != null), false); RemoveInstallationCommand.Subscribe(OnRemoveInstallation); }
public GameViewModel(IContainer container) { DcsProcessMonitor.Instance.DcsProcessExited += OnDcsProcessExited; _container = container; _controller = container.Resolve <GameController>(); _profileService = _container.Resolve <IProfileService>(); _dcsWorldManager = container.Resolve <IDcsWorldManager>(); IsUpdateAvailable = IsDcsOutOfDate.AsObservable().Merge( IsCheckingLatestVersion.AsObservable().Merge( IsLoading.AsObservable().Merge( FailedVersionCheck.AsObservable()))).Select(_ => IsDcsOutOfDate.Value && !IsLoading.Value && !IsCheckingLatestVersion.Value && !FailedVersionCheck.Value) .ToReactiveProperty(); IsUpdateAvailable.Subscribe(OnIsUpdateAvailableChange); var canPlayObservable = SelectedInstall .Select(_ => Unit.Default) .Merge(IsPlayingDcs.Select(_ => Unit.Default)) .Merge(IsUpdateAvailable.Select(_ => Unit.Default)).Select(_ => CanLaunchDcs()); LaunchDcsCommand = canPlayObservable.ToReactiveCommand(); SelectInstallCommand.Subscribe(OnSelectInstall); UpdateDcsCommand.Subscribe(OnUpdateDcs); RepairDcsCommand.Subscribe(OnRepairDcs); LaunchDcsCommand.Subscribe(OnLaunchDcs); CheckForUpdatesCommand.Subscribe(OnCheckForUpdates); ShowNewsArticleCommand.Subscribe(OnShowNewsArticle); CleanShadersCommand.Subscribe(OnCleanShaders); _checkPlayingTimer = new DispatcherTimer(); _checkPlayingTimer.Interval = TimeSpan.FromSeconds(1); _checkPlayingTimer.Tick += OnCheckPlayingTimerTick; _checkPlayingTimer.Start(); IsUpdatingDcs.Subscribe(OnIsUpdatingDcsChanged); }