internal static void AddCoreRocketServices(this IServiceCollection services,
                                                   IRocketApplication rocketApplication,
                                                   RocketApplicationCreationOptions applicationCreationOptions)
        {
            var moduleLoader   = new ModuleLoader();
            var assemblyFinder = new AssemblyFinder(rocketApplication);
            var typeFinder     = new TypeFinder(assemblyFinder);

            if (!services.IsAdded <IConfiguration> ())
            {
                services.ReplaceConfiguration(
                    ConfigurationHelper.BuildConfiguration(
                        applicationCreationOptions.Configuration
                        )
                    );
            }

            services.TryAddSingleton <IModuleLoader> (moduleLoader);
            services.TryAddSingleton <IAssemblyFinder> (assemblyFinder);
            services.TryAddSingleton <ITypeFinder> (typeFinder);

            services.AddAssemblyOf <IRocketApplication> ();

            services.Configure <RocketModuleLifecycleOptions> (options => {
                options.Contributors.Add <OnPreApplicationInitializationModuleLifecycleContributor> ();
                options.Contributors.Add <OnApplicationInitializationModuleLifecycleContributor> ();
                options.Contributors.Add <OnPostApplicationInitializationModuleLifecycleContributor> ();
                options.Contributors.Add <OnApplicationShutdownModuleLifecycleContributor> ();
            });
        }
Ejemplo n.º 2
0
 public RocketConventionalControllerFeatureProvider(IRocketApplication application)
 {
     _application = application;
 }