/// <summary> /// Class front-end to ApplySetting. A null value from command-line or settings indicates no value /// was given. /// </summary> /// <typeparam name="TSetting"></typeparam> /// <param name="fromCmd"></param> /// <param name="fromSettings"></param> /// <param name="validate"></param> /// <param name="settingName"></param> /// <param name="apply"></param> /// <param name="defaultValue"></param> /// <param name="dataSensitivity"></param> public static void ApplySettingClass <TSetting>(TSetting fromCmd, TSetting fromSettings, Func <TSetting, string> validate, string settingName, Action <TSetting> apply, TSetting defaultValue, Dfo.Controlling.SensitiveData dataSensitivity) where TSetting : class { ApplySetting <TSetting>(fromCmd != null, fromCmd, fromSettings != null, fromSettings, validate, settingName, apply, defaultValue, dataSensitivity); }
/// <summary> /// Struct front-end to ApplySetting. A null value from command-line or settings indicates no value /// was given. /// </summary> /// <typeparam name="TSetting"></typeparam> /// <param name="fromCmd"></param> /// <param name="fromSettings"></param> /// <param name="validate"></param> /// <param name="settingName"></param> /// <param name="apply"></param> /// <param name="defaultValue"></param> /// <param name="suppressValueDisplay"></param> public static void ApplySettingStruct <TSetting>(TSetting?fromCmd, TSetting?fromSettings, Func <TSetting, string> validate, string settingName, Action <TSetting> apply, TSetting defaultValue, Dfo.Controlling.SensitiveData dataSensitivity) where TSetting : struct { ApplySetting <TSetting>(fromCmd.HasValue, fromCmd.HasValue ? fromCmd.Value : default(TSetting), fromSettings.HasValue, fromSettings.HasValue ? fromSettings.Value : default(TSetting), validate, settingName, apply, defaultValue, dataSensitivity); }
/// <summary> /// Applies a setting given the command-line value if present, saved setting if present, default, /// and a delegate that does the actual applying given the value to apply. /// </summary> /// <typeparam name="TSetting">Type of the setting.</typeparam> /// <param name="cmdHas">Whether a value was specified on the command-line.</param> /// <param name="fromCmd">The value from the command-line if one was specified. Otherwise /// this parameter is ignored.</param> /// <param name="settingsHas">Whether a value was specified in the saved settings.</param> /// <param name="fromSettings">The value from the saved settings if one was specified. Otherwise /// this parameter is ignored.</param> /// <param name="validate">A validation function that returns a non-null error message string if /// validation fails or returns null if validation succeeds.</param> /// <param name="settingName">The name of the setting (used in logging).</param> /// <param name="apply">A delegate that does the actual applying given a setting value.</param> /// <param name="defaultValue">A default setting value to use if command-line and saved settings do /// not provide a valid value.</param> /// <param name="dataSensitivity">The sensitivity level of the setting.</param> public static void ApplySetting <TSetting>(bool cmdHas, TSetting fromCmd, bool settingsHas, TSetting fromSettings, Func <TSetting, string> validate, string settingName, Action <TSetting> apply, TSetting defaultValue, Dfo.Controlling.SensitiveData dataSensitivity) { Logging.Log.DebugFormat("Getting value for setting '{0}'.", settingName); TSetting settingValue = default(TSetting); bool valueFound = false; if (!valueFound && cmdHas) { Logging.Log.DebugFormat("Command-line value found."); string error = null; if (validate != null) { error = validate(fromCmd); } string valueString = string.Format("{0}", fromCmd).HideSensitiveData(dataSensitivity); if (error == null) { settingValue = fromCmd; Logging.Log.DebugFormat("{0} = {1} (from command-line)", settingName, valueString); valueFound = true; } else { Logging.Log.ErrorFormat("Error in command-line value for {0} = {1}. {2} Trying settings file.", settingName, valueString, error); } } if (!valueFound && settingsHas) { Logging.Log.DebugFormat("Settings file value found."); string error = null; if (validate != null) { error = validate(fromSettings); } string valueString = string.Format("{0}", fromSettings).HideSensitiveData(dataSensitivity); if (error == null) { Logging.Log.DebugFormat("{0} = {1} (from settings file)", settingName, valueString); settingValue = fromSettings; valueFound = true; } else { Logging.Log.ErrorFormat("Error in settings file value for {0} = {1}. {2} Using default.", settingName, valueString, error); } } if (!valueFound) { string valueString = string.Format("{0}", defaultValue).HideSensitiveData(dataSensitivity); settingValue = defaultValue; valueFound = true; Logging.Log.DebugFormat("{0} = {1} (default)", settingName, valueString); } apply(settingValue); }
internal static string HideSensitiveData(this string dataString, Dfo.Controlling.SensitiveData kindOfData) { return(Dfo.Controlling.DfoControllingLogHelpers.HideSensitiveData(dataString, kindOfData, Logging.SensitiveDataToLog)); }