public static IDiContainerBuilder AddSingletonCollectionFor <TService>(this IDiContainerBuilder builder)
            where TService : class
        {
            AddCollection(typeof(TService), types => builder.AddScopedCollection <TService>(types));

            return(builder);
        }
        public static IDiContainerBuilder RegisterImplementations(this IDiContainerBuilder builder,
                                                                  IEnumerable <Type> types)
        {
            new AutoRegisterImplementations(builder).ForTypes(types).Register();

            return(builder);
        }
        public static IDiContainerBuilder RegisterImplementations(this IDiContainerBuilder builder,
                                                                  Assembly assembly)
        {
            new AutoRegisterImplementations(builder).ForTypesInAssembly(assembly).Register();

            return(builder);
        }
        private static IDiContainerBuilder SetupDriversSubSystem(this IDiContainerBuilder containerBuilder)
        {
            containerBuilder
            .AddScoped <IDriverSubSystem, DriverSubSystem>()
            .AddScoped <IDriverLoader, DriverLoader>();

            return(containerBuilder);
        }
 private static void SetupHalt(this IDiContainerBuilder containerBuilder)
 {
     containerBuilder
     .AddScoped <IKernelHaltProcess, KernelHaltProcess>()
     .AddScoped <IThingsHaltStep, ThingsHaltStep>()
     .AddScoped <IItemHaltStep, ItemHaltStep>()
     .AddScoped <ITriggersHaltStep, TriggersHaltStep>();
 }
Example #6
0
        public static IDiContainerBuilder AddDataSupport(this IDiContainerBuilder builder, Type repositoryType, Type repositoryWithKeyType)
        {
            builder.AddScoped <IRepositoryFactory, RepositoryFactory>();
            builder.AddScoped(typeof(IRepository <,>), repositoryWithKeyType);
            builder.AddScoped(typeof(IRepository <>), repositoryType);

            return(builder);
        }
        private static IDiContainerBuilder SetupTriggerSubSystem(this IDiContainerBuilder containerBuilder)
        {
            containerBuilder
            .AddScoped <ITriggerSubSystem, TriggerSubSystem>()
            .AddScoped <ITriggerRepository, TriggerRepository>();

            return(containerBuilder);
        }
        public static IDiContainerBuilder AddSingletonCollectionFor <TService>(this IDiContainerBuilder builder,
                                                                               bool withReflectionOnlyAssemblies)
            where TService : class
        {
            AddCollection(typeof(TService), types => builder.AddScopedCollection <TService>(types),
                          withReflectionOnlyAssemblies);

            return(builder);
        }
        private static IDiContainerBuilder SetupAssemblySubSystem(this IDiContainerBuilder containerBuilder)
        {
            containerBuilder
            .AddScoped <IAssemblyLoader, AssemblyLoader>()
            .AddScopedCollection <IAssemblyReferenceLoader>(
                typeof(FileAssemblyReferenceLoader))
            .AddScoped <IAssemblySubSystem, AssemblySubSystem>();

            return(containerBuilder);
        }
        public static IDiContainerBuilder AddEfCoreSupport <TDbContext>(this IDiContainerBuilder builder)
            where TDbContext : DbContext
        {
            builder.AddDataSupport(typeof(EfCoreRepository <>), typeof(EfCoreRepository <,>));

            builder.AddScoped <DbContext, TDbContext>();
            builder.AddScoped <IEfCoreEntityModelBuilderSource, EfCoreEntityModelBuilderSource>();

            return(builder);
        }
        public static IDiContainerBuilder RegisterImplementations(this IDiContainerBuilder builder,
                                                                  IEnumerable <Assembly> assemblies)
        {
            var autoRegisterImplementations = new AutoRegisterImplementations(builder);

            assemblies.ForEach(assembly => autoRegisterImplementations.ForTypesInAssembly(assembly));

            autoRegisterImplementations.Register();

            return(builder);
        }
Example #12
0
        public static IDiContainerBuilder AddSqlServerDbContext <TDbContext>(this IDiContainerBuilder builder,
                                                                             string connectionString)
            where TDbContext : DbContext
        {
            builder.AddEfCoreSupport <TDbContext>();

            builder.AddScoped <ISetting <SqlServerConnectionString> >(_ =>
                                                                      new SqlServerConnectionStringSetting(connectionString));

            return(builder);
        }
        public static IDiContainerBuilder SetupDefaultInfrastructure(this IDiContainerBuilder builder)
        {
            builder.AddScoped <IWindowManager, WindowManager>();
            builder.AddScoped <IViewLocator, ViewLocator>();
            builder.AddScoped <IViewModelBinder, ViewModelBinder>();
            builder.AddScoped <IViewModelToViewMappings, ViewModelToViewMappings>();
            builder.AddScoped <IDataTemplateGenerator, DataTemplateGenerator>();
            builder.AddScoped <IWindowHelper, WindowHelper>();
            builder.AddScoped <IViewAttributeInitializer, ViewAttributeInitializer>();

            return(builder);
        }
        private static IDiContainerBuilder SetupItemSubSystem(this IDiContainerBuilder containerBuilder)
        {
            containerBuilder
            .AddScoped <IItemSubSystem, ItemSubSystem>()
            .AddScoped <IItemRepository, ItemRepository>()
            .AddScopedCollectionFor <IItemType>()
            .AddScoped <IItemTypeRegistrations, ItemTypeRegistrations>()
            .AddScoped <IItemBuilder, ItemBuilder>()
            .AddScoped <IItemBindingBuilder, ItemBindingBuilder>();

            return(containerBuilder);
        }
 public static void SetupForKernel(this IDiContainerBuilder containerBuilder)
 {
     containerBuilder
     .SetupBoot()
     .SetupAssemblySubSystem()
     .SetupDriversSubSystem()
     .SetupThingsSubSystem()
     .SetupItemSubSystem()
     .SetupScriptingSubSystem()
     .SetupTriggerSubSystem()
     .SetupHalt();
 }
        private static IDiContainerBuilder SetupThingsSubSystem(this IDiContainerBuilder containerBuilder)
        {
            containerBuilder
            .AddScoped <IThingSubSystem, ThingSubSystem>()
            .AddScoped <IGatewayRepository, GatewayRepository>()
            .AddScoped <IThingRepository, ThingRepository>()
            .AddScoped <IThingTemplateRepository, ThingTemplateRepository>()
            .AddScoped <IThingChannelRepository, ThingChannelRepository>()
            .AddScoped <IGatewayBuilder, GatewayBuilder>()
            .AddScoped <IThingBuilder, ThingBuilder>()
            .AddScoped <IThingChannelBuilder, ThingChannelBuilder>();

            return(containerBuilder);
        }
        private static IDiContainerBuilder SetupBoot(this IDiContainerBuilder containerBuilder)
        {
            containerBuilder
            .AddScoped <ISmartHalKernel, SmartHalKernel>()
            .AddScoped <IMessageHub, MessageHub>()
            .AddScoped <IKernelRequestDispatcher, KernelRequestDispatcher>()
            .AddScoped <IKernelBootProcess, KernelBootProcess>()
            .AddScoped <IAssemblyBootStep, AssemblyBootStep>()
            .AddScoped <IDriverBootStep, DriverBootStep>()
            .AddScoped <IThingsBootStep, ThingsBootStep>()
            .AddScoped <IItemBootStep, ItemBootStep>()
            .AddScoped <IScriptingBootStep, ScriptingBootStep>();

            return(containerBuilder);
        }
        private static IDiContainerBuilder SetupScriptingSubSystem(this IDiContainerBuilder containerBuilder)
        {
            containerBuilder
            .AddScoped <IScriptingSubSystem, ScriptingSubSystem>()
            .AddScoped <IScriptingCore, ScriptingCore>()
            .AddScoped <IActionScriptCore, ActionScriptCore>()
            .AddScoped <ICompilerFactory, RoslynCompilerFactory>()
            .AddScoped <CSharpScriptRuntime <ActionScriptImplementation> >()
            .AddScoped <ActionScriptImplementation>()
            .AddScoped <ActionScriptClassTemplate>()
            .AddTransient <IItemsScriptApi, ItemsScriptApi>()
            .AddTransient <ITriggerApi, TriggerApi>();

            return(containerBuilder);
        }
Example #19
0
        public static IDiContainerBuilder AddNhibernateSupport(this IDiContainerBuilder builder, Action <Configuration> setupNhibernateConfiguration)
        {
            var configuration = new Configuration();

            configuration.DataBaseIntegration(dbi =>
            {
                dbi.ConnectionString = "";
                dbi.Dialect <MsSql2008Dialect>();
                dbi.Driver <Sql2008ClientDriver>();
            });
            setupNhibernateConfiguration(configuration);

            builder.AddScoped(_ => configuration.BuildSessionFactory());

            return(builder);
        }
        public static void Configure(this IDiContainerBuilder containerBuilder, IConfiguration configuration)
        {
            Ensure.IsNotNull(configuration, nameof(configuration));

            containerBuilder.AddSingleton(typeof(ISettingFactory <>), typeof(SettingFactory <>));
            containerBuilder.AddSingleton(typeof(ISettingsFactory <>), typeof(SettingsFactory <>));

            containerBuilder.AddSingleton(typeof(ISetting <>), typeof(Setting <>));
            containerBuilder.AddSingleton(typeof(ISettings <>), typeof(Settings <>));

            containerBuilder.AddScoped(typeof(ISettingScoped <>), typeof(SettingScoped <>));
            containerBuilder.AddScoped(typeof(ISettingsScoped <>), typeof(SettingsScoped <>));

            containerBuilder.AddTransient(typeof(ISettingTransient <>), typeof(SettingTransient <>));
            containerBuilder.AddTransient(typeof(ISettingsTransient <>), typeof(SettingsTransient <>));

            containerBuilder.AddSingleton(_ => configuration);
        }
 protected virtual void ConfigureDiContainer(IDiContainerBuilder containerBuilder)
 {
 }
Example #22
0
 protected override void ConfigureDiContainer(IDiContainerBuilder containerBuilder)
 {
     containerBuilder.SetupDefaultInfrastructure();
     containerBuilder.AddTransient <IFileDialogService, Win32FileDialogService>();
 }
 public AutoRegisterImplementations(IDiContainerBuilder containerBuilder)
 {
     _containerBuilder = containerBuilder;
     _types            = new List <Type>();
 }
 protected override void ConfigureDiContainer(IDiContainerBuilder containerBuilder)
 {
     containerBuilder.SetupDefaultInfrastructure();
     containerBuilder.AddTransient <ExplorerTreeViewModel>();
 }