public bool DependenciesAreInstalledProperly() { _logger.Write("Checking launch dependencies."); if (!Environment.Is64BitOperatingSystem) { _logger.Write($"Is not 64-bit OS. OS version: {Environment.OSVersion}"); _notificationService.ShowNotification("GT-MP requires a 64-bit operating system.", true); return(false); } RequiredDependency firstMissingDependency = null; try { foreach (var dependency in _requiredRepDependencies) { _logger.Write($"Check for dependency: {dependency.Name}"); if (dependency.IsInstalledCorrectly() || dependency.IsAnyEquivalentInstalledCorrectly()) { continue; } if (dependency.Name.StartsWith("Microsoft Visual C++ 2015")) { continue; } firstMissingDependency = dependency; break; } } catch (Exception ex) { _logger.Write(ex); var launchAnyways = AskToLaunchAnyways(); if (!launchAnyways) { return(false); } _logger.Write("User chose to launch anyways."); return(true); } if (firstMissingDependency == null) { return(true); } _logger.Write($"Missing dependency. ({firstMissingDependency.Name})"); if (MessageBox.Show( $"{firstMissingDependency.Name} is missing.\nWould you like to download it now?", "Missing dependency", MessageBoxButton.YesNoCancel) == MessageBoxResult.Yes) { Process.Start(firstMissingDependency.DownloadUrl); } return(false); }
public MyService(RequiredDependency d) { }
public class MyService { public MyService(RequiredDependency dependency) { }