/// <summary> /// Initializes a new instance of the <see cref="IISConfigurationService"/> class /// </summary> /// <param name="configManager"> Details of the IIS Executable and config </param> /// <param name="configValidationService"> An IISExpressConfigValidationService implementation to validate the config values </param> public IISConfigurationService(IConfigurationManager<IISConfig> configManager, IConfigValidationService configValidationService) { if (configManager == null) { throw new ArgumentNullException("configManager"); } if (configValidationService == null) { throw new ArgumentNullException("configValidationService"); } this._configManager = configManager; this._iisConfig = this._configManager.GetSection("IISExpress"); if (!IsConfigurationValid(this._iisConfig, configValidationService)) { throw new Exception<IISConfigExceptionArgs>(new IISConfigExceptionArgs(this._iisConfig.IIsExecutablePath, this._iisConfig.IISConfigFilePath)); } }
/// <summary> /// Private method to determin whether the IISConfig values are valid paths /// </summary> /// <param name="config"> IISConfig </param> /// <param name="configValidationService"> IConfigValidationService </param> /// <returns> True if IISConfig is valid, else false</returns> private static bool IsConfigurationValid(IISConfig config, IConfigValidationService configValidationService) { return configValidationService.IsSatisfiedBy(config); }