protected static void BeforeInit( TempDBMySqlBase <T> self, Action <object> beforeInit, TempDbMySqlServerSettings settings) { self._autoDeleter = new AutoDeleter(); self.Settings = settings; beforeInit?.Invoke(self); }
/// <summary> /// Create a TempDbMySql instance with provided options, an action to run before initializing and /// zero or more creation scripts /// </summary> /// <param name="settings"></param> /// <param name="beforeInit"></param> /// <param name="creationScripts"></param> public TempDBMySqlBase( TempDbMySqlServerSettings settings, Action <object> beforeInit, params string[] creationScripts ) : base( o => BeforeInit(o as TempDBMySqlBase <T>, beforeInit, settings), creationScripts ) { }
/// <summary> /// Create a TempDbMySql instance with provided options and zero or more creation scripts /// </summary> /// <param name="settings"></param> /// <param name="creationScripts"></param> public TempDBMySqlBase( TempDbMySqlServerSettings settings, params string[] creationScripts ) : this( settings, o => { }, creationScripts) { }
private KeyValuePair <string, string> GetSetting( PropertyInfo prop, TempDbMySqlServerSettings tempDbMySqlSettings) { var settingAttrib = prop.GetCustomAttributes() .OfType <SettingAttribute>() .FirstOrDefault(); if (settingAttrib == null) { return(new KeyValuePair <string, string>()); } return(new KeyValuePair <string, string>( settingAttrib.Name, $"{prop.GetValue(tempDbMySqlSettings)}")); }
private void AddSetting( INIFile.INIFile iniFile, PropertyInfo prop, TempDbMySqlServerSettings tempDbMySqlSettings ) { var settingAttrib = prop.GetCustomAttributes() .OfType <SettingAttribute>() .FirstOrDefault(); if (settingAttrib == null) { return; } iniFile[SECTION][settingAttrib.Name] = $"{prop.GetValue(tempDbMySqlSettings)}"; }
/// <summary> /// Generates MySql configuiration from TempDbMySqlServerSettings /// </summary> /// <param name="tempDbMySqlSettings"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public string GenerateFor(TempDbMySqlServerSettings tempDbMySqlSettings) { if (tempDbMySqlSettings == null) { throw new ArgumentNullException(nameof(tempDbMySqlSettings)); } var iniFile = new INIFile.INIFile(); iniFile.AddSection(SECTION); tempDbMySqlSettings .GetType() .GetProperties() .ForEach(prop => AddSetting(iniFile, prop, tempDbMySqlSettings)); return(iniFile.ToString()); }
/// <summary> /// Generates MySql configuration from TempDbMySqlServerSettings /// </summary> /// <param name="tempDbMySqlSettings"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public string GenerateFor(TempDbMySqlServerSettings tempDbMySqlSettings) { if (tempDbMySqlSettings == null) { throw new ArgumentNullException(nameof(tempDbMySqlSettings)); } var iniFile = new INI.INIFile(); iniFile.AddSection(SECTION); tempDbMySqlSettings.GetType() .GetProperties() .Select(prop => GetSetting(prop, tempDbMySqlSettings)) .Where(y => y.Key?.Length > 0) .ForEach(x => WriteSetting(iniFile, x)); tempDbMySqlSettings .CustomConfiguration ?.Select(x => new KeyValuePair <string, string>(x.Key, x.Value)) .ForEach(x => WriteSetting(iniFile, x)); return(iniFile.ToString()); }