Пример #1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors();
            var rabbitMqConfig = Configuration.GetSection("ZaabeeRabbitMQ").Get <MqConfig>();

            ZaabyServer.UseDDD(services);
            var config  = new Config(Configuration.GetSection("Application"));
            var dataDir = Environment.GetEnvironmentVariable("DATA_DIR") ?? "./";

            services
            .AddSingleton <IZaabeeRabbitMqClient>(p =>
                                                  new ZaabeeRabbitMqClient(rabbitMqConfig, new Serializer()))
            .AddScoped <IIntegrationEventBus, ZaabyEventBus>()
            .AddScoped <IDomainEventPublisher, DomainEventPublisher>()
            .AddScoped <ArticleDomainService>()
            .AddScoped <ArticleCategoryDomainService>()
            .AddSingleton <DomainEventHandlerProvider>()
            .AddSingleton <IArticleRepository>(new ArticleRepository(dataDir))
            .AddSingleton <IArticleCategoryRepository>(new ArticleCategoryRepository(dataDir))
            .AddSingleton <CategoryQueryService, CategoryQueryService>()
            .AddScoped <IArticleApplicationService, ArticleApplicationService>()
            .AddSingleton(new ArticleQueryService(config))
            .AddSingleton <CategoryQueryService>();

            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });
            services.AddMvc();
        }