// This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <MongoDatabaseSettings>(Configuration.GetSection(nameof(MongoDatabaseSettings)));

            services.AddSingleton <IReasoningService, ReasoningService>();
            services.AddSingleton <IMongoDatabaseSettings>(sp => sp.GetRequiredService <IOptions <MongoDatabaseSettings> >().Value);
            services.AddSingleton <IKnowledgeBaseService, KnowledgeBaseService>();
            services.AddSingleton <IReasoningTaskService, ReasoningTaskService>();
            services.AddSingleton <IReasoningTaskResolver, ReasoningTaskResolver>();
            services.AddSingleton <IReasoningTaskRepository, ReasoningTaskRepository>();
            services.AddSingleton <IKnowledgeBaseRepository, KnowledgeBaseRepository>();
            services.AddSingleton <Initiator>();
            services.AddHostedService <ReasoningHostedService>();
            services.AddSingleton <IBackgroundTaskQueue, BackgroundTaskQueue>();
            services.AddHttpClient <IHttpClientService, HttpClientService>();

            MongoDatabaseConfiguration.ConfigureBsonSerializers();
            MongoDatabaseConfiguration.ConfigureConventionRegistry();

            services.AddControllers().AddJsonOptions(opts =>
            {
                opts.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
                opts.JsonSerializerOptions.IgnoreNullValues     = true;
                opts.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
                opts.JsonSerializerOptions.Converters.Add(new JsonAbstractionConverter());
            });
        }
Пример #2
0
        public MongoDBService()
        {
            CollectionName        = typeof(DataType).Name + collectionPostfix;
            SupportDocumentName   = typeof(DataType).Name + collectionPostfix + supportDocumentPostfix;
            SupportCollectionName = supportCollectionName;

            Configuration = new MongoDatabaseConfiguration();
        }