private void Initialize(string[] args, Action <string> outputStream) { // If not executed, create instances of the initializers if (_initializers == null) { _initializers = ModuleConfig.Initializers.Select(config => InitializerFactory.Create(config)).ToArray(); } // If no additional arguments, list initializers if (!args.Any()) { ListResourceInitializers(outputStream); return; } // If argument is 'list', list initializers if (args[0].ToLower() == "list") { ListResourceInitializers(outputStream); return; } // Else, parse argument outputStream(string.Empty); int initializerPos; if (int.TryParse(args[0], out initializerPos)) { var index = initializerPos - 1; if (index >= _initializers.Length) { outputStream($"ResourceInitializer with position {initializerPos} does not exists"); ListResourceInitializers(outputStream); } var initializer = _initializers[initializerPos - 1]; ExecuteInitializer(initializer, outputStream); } else { var name = args[0]; var initializer = _initializers.SingleOrDefault(i => i.Name.Replace(" ", "-").ToLower().Equals(name.ToLower())); if (initializer == null) { outputStream($"ResourceInitializer with name '{name}' does not exists"); ListResourceInitializers(outputStream); } else { ExecuteInitializer(initializer, outputStream); } } }
public static void Configure() { var settings = new ApplicationSettings(ConfigurationManager.AppSettings); var factory = new InitializerFactory(settings); var initializer = factory.Create(); Database.SetInitializer(initializer); using (var context = new PersistenceContext()) { context.Database.Initialize(false); } }
public static string GetSqlCreationScript(this DbContext context) { string entitySqlScript = ((IObjectContextAdapter)context).ObjectContext.CreateDatabaseScript(); StringBuilder sb = new StringBuilder(entitySqlScript + Environment.NewLine); DbInitializer dbinit = InitializerFactory.GetDbInitializerFor(context.GetType()); SortedSet <string> customDbCommands = dbinit.GetCommands(); foreach (string cmd in customDbCommands) { sb.AppendLine(cmd); } return(sb.ToString()); }
public string CallResourceInitializer([PluginConfigs(typeof(IResourceInitializer), true)] ResourceInitializerConfig[] configs) { foreach (var config in configs) { try { var initializer = InitializerFactory.Create(config); ResourceManager.ExecuteInitializer(initializer); InitializerFactory.Destroy(initializer); } catch (Exception e) { return($"{config.PluginName} failed to run: {e.Message}"); } } return("Success"); }
/// <summary> /// Helper to remove Metadataconventions from modelBuilder, this option is used for code using EF4.2 with EF4.3 /// it's activated (and true by default) but you can call it explicitely /// </summary> /// <param name="status"></param> public static void RemoveMetadataConvention(bool status = true) { InitializerFactory.SetOption("RemoveMetaDataStatus", status); }
public static void SetDbInitializer <T>(DbInitializer dbInitializer) where T : DbContext { InitializerFactory.SetDbInitializer <T>(dbInitializer); }
public static void SetEntityInitializer <T>(EntityInitializer entityInitializer) where T : DbContext { InitializerFactory.SetEntityInitializer <T>(entityInitializer); }