public void Initialize()
 {
     AssemblyLoadingManager.ServerNamespaces = () => new[] { "Api" };
     CreateAssemblies();
     InitializeCompositionModules();
     MiddlewareApplier.ApplyMiddlewares(this, _middlewares);
 }
예제 #2
0
 public TBootstrapper Apply(TBootstrapper @object)
 {
     @object.Registrator
     .AddSingleton <IStartDynamicApplicationModuleService, StartDynamicApplicationModuleService>()
     .AddSingleton <IStartStaticApplicationModuleService, StartStaticApplicationModuleService>()
     .AddSingleton <ILifecycleService, StaticLifecycleService>()
     .AddSingleton <IStaticSetupService, StaticSetupService>();
     MiddlewareApplier.ApplyMiddlewares(@object, _middlewares);
     return(@object);
 }
예제 #3
0
        /// <inheritdoc />
        public TBootstrapper Apply(TBootstrapper @object)
        {
            var middlewares = new[]
            {
                new ContainerRegistrationMiddleware <IDependencyRegistrator, IDependencyRegistrator>(@object.Modules)
            };

            MiddlewareApplier.ApplyMiddlewares(@object.Registrator, middlewares);
            return(@object);
        }
예제 #4
0
        /// <summary>
        /// Registers the composition modules into the ioc container.
        /// </summary>
        /// <typeparam name="TIocContainer">The type of the ioc container.</typeparam>
        /// <param name="iocContainer">The ioc container.</param>
        /// <param name="compositionModules">The composition modules.</param>
        public static void RegisterContainerCompositionModules <TIocContainer>(this TIocContainer iocContainer,
                                                                               IEnumerable <ICompositionModule> compositionModules)
            where TIocContainer : class
        {
            var modules     = compositionModules as ICompositionModule[] ?? compositionModules.ToArray();
            var middlewares = new List <IMiddleware <TIocContainer> >(new IMiddleware <TIocContainer>[]
            {
                new ContainerRegistrationMiddleware <TIocContainer, TIocContainer>(modules),
                new ContainerPlainRegistrationMiddleware <TIocContainer>(modules),
                new ContainerHierarchicalRegistrationMiddleware <TIocContainer>(modules)
            });

            MiddlewareApplier.ApplyMiddlewares(iocContainer, middlewares);
        }
예제 #5
0
        private IServiceCollection AddServicesImpl(IServiceCollection services)
        {
            var middlewares = new IMiddleware <IServiceCollection>[]
            {
                new UseMediatRMiddleware(Assembly.GetExecutingAssembly()),
                new UseDbContextMiddleware(_config),
                new UseLocalizationMiddleware(),
                new UseSwaggerMiddleware(),
                new UseCorsMiddleware(),
                new UseMvcMiddleware(),
                new UseAutoMapperMiddleware(),
                new UseJwtMiddleware(),
                new UseOtherMiddleware()
            };

            MiddlewareApplier.ApplyMiddlewares(services, middlewares);

            return(services);
        }
예제 #6
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
        {
            var loggerFactoryMiddlewares = new IMiddleware <ILoggerFactory>[]
            {
                new UseSerilogMiddleware()
            };

            MiddlewareApplier.ApplyMiddlewares(loggerFactory, loggerFactoryMiddlewares);
            app.UseMiddleware <ErrorHandlingMiddleware>()
            .UseCors(builder =>
                     builder
                     .AllowAnyOrigin()
                     .AllowAnyHeader()
                     .AllowAnyMethod())
            .UseMvc()
            // Enable middleware to serve generated Swagger as a JSON endpoint
            .UseSwagger(c => { c.RouteTemplate = "swagger/{documentName}/swagger.json"; })
            // Enable middleware to serve swagger-ui assets(HTML, JS, CSS etc.)
            .UseSwaggerUI(x => { x.SwaggerEndpoint("/swagger/v1/swagger.json", "RealWorld API V1"); });

            app.ApplicationServices.GetRequiredService <ConduitContext>().Database.EnsureCreated();
        }
예제 #7
0
 public void Initialize()
 {
     InitializeCompositionModules();
     MiddlewareApplier.ApplyMiddlewares(this, _middlewares);
 }
예제 #8
0
 /// <inheritdoc />
 public void Initialize()
 {
     MiddlewareApplier.ApplyMiddlewares(_extensible, _middlewaresWrapper.Middlewares);
 }