protected override void Load(ContainerBuilder builder) { base.Load(builder); if (!Directory.Exists(extensionsPath)) return; var container = new CompositionContainer( new DirectoryCatalog(extensionsPath) ); container.SatisfyImportsOnce(this); foreach (var export in Extensions) { var extension = export.Value; var controller = extension as RoutableFunnelWebExtension; var requiresScripts = extension as IRequireDatabaseScripts; if (requiresScripts != null) { var ex = new ScriptedExtension( requiresScripts.SourceIdentifier, extension.GetType().Assembly, new EmbeddedScriptProvider( extension.GetType().Assembly, script => script.EndsWith(".sql"))); builder.RegisterInstance(ex); } if (controller != null) { controller.Routes = routes; controller.Initialize(builder); controller.RegisterControllers(builder); } else { extension.Initialize(builder); } builder.RegisterInstance(export.Metadata).As<IFunnelWebExtensionMetaData>(); } }
public string[] GetExtensionRequiredScripts(ScriptedExtension extension) { return extension.ScriptProvider.GetScripts().Select(x => x.Name).ToArray(); }
public string[] GetExtensionExecutedScripts(string connectionString, ScriptedExtension extension, string schema) { return CreateJournal(connectionString, extension.SourceIdentifier, schema).GetExecutedScripts(); }
public string[] GetExtensionExecutedScripts(Func<IDbConnection> connectionFactory, ScriptedExtension extension) { return CreateJournal(connectionFactory, extension.SourceIdentifier, connectionStringSettings.Schema).GetExecutedScripts(); }
public string[] GetExtensionRequiredScripts(Func <IDbConnection> connectionFactory, ScriptedExtension extension) { return(extension.ScriptProvider.GetScripts(null).Select(x => x.Name).ToArray()); }
public string[] GetExtensionExecutedScripts(Func <IDbConnection> connectionFactory, ScriptedExtension extension) { return(CreateJournal(connectionFactory, extension.SourceIdentifier, connectionStringSettings.Schema).GetExecutedScripts()); }
public string[] GetExtensionRequiredScripts(Func<IDbConnection> connectionFactory, ScriptedExtension extension) { return extension.ScriptProvider.GetScripts(connectionFactory).Select(x => x.Name).ToArray(); }