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);
                }
            }
        }
Ejemplo n.º 2
0
		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);
			}
		}
Ejemplo n.º 3
0
        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");
        }
Ejemplo n.º 5
0
 /// <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);
 }
Ejemplo n.º 6
0
 public static void SetDbInitializer <T>(DbInitializer dbInitializer) where T : DbContext
 {
     InitializerFactory.SetDbInitializer <T>(dbInitializer);
 }
Ejemplo n.º 7
0
 public static void SetEntityInitializer <T>(EntityInitializer entityInitializer) where T : DbContext
 {
     InitializerFactory.SetEntityInitializer <T>(entityInitializer);
 }