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)}"));
        }
Exemple #5
0
        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)}";
        }
Exemple #6
0
        /// <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());
        }