This commit is contained in:
andrei-mihnea-cerbu
2024-04-08 02:31:05 +03:00
parent 61a55fa735
commit b4eca98e0a
57 changed files with 185 additions and 105 deletions
+21 -2
View File
@@ -1,4 +1,5 @@
using Application.Services.Database;
using Application.Services.Database.MongoDB;
using Application.Services.HashingAlgorithms;
using Infrastructure.Data;
using Infrastructure.Services.HashingAlgorithms;
@@ -7,6 +8,7 @@ using Infrastructure.Services.PostgreSQL;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using MongoDB.Driver;
namespace Infrastructure;
@@ -24,8 +26,19 @@ public static class DependencyInjection
services.AddScoped<IMedicalHistoryRepository, MedicalHistoryRepository>();
// MongoDB Service
var mongoDbConnection = configuration.GetConnectionString("MongoDBDatabase");
services.AddSingleton<IMongoDbService>(serviceProvider => new MongoDbService(mongoDbConnection));
var mongoDbConnectionString = configuration.GetValue<string>("ConnectionStrings:MongoDBConnection");
// Extract MongoDB database names
var healthcareManagerDatabaseName = configuration.GetValue<string>("HealthcareManagerDatabase:Name");
var medicalHistoryCollectionName = configuration.GetValue<string>("HealthcareManagerDatabase:MedicalRecordCollectionName");
var chatCollectionName = configuration.GetValue<string>("HealthcareManagerDatabase:ChatCollectionName");
// Register MongoDB services
services.AddSingleton<IMedicalHistoryMongoDbService>(serviceProvider =>
new MedicalHistoryMongoDbService(mongoDbConnectionString, healthcareManagerDatabaseName, medicalHistoryCollectionName));
services.AddSingleton<IChatMongoDbService>(serviceProvider =>
new ChatMongoDbService(mongoDbConnectionString, healthcareManagerDatabaseName, chatCollectionName));
// Other Services
@@ -34,4 +47,10 @@ public static class DependencyInjection
return services;
}
private static string ExtractMongoDbDatabaseName(string connectionString)
{
var connectionStringBuilder = new MongoUrlBuilder(connectionString);
return connectionStringBuilder.DatabaseName;
}
}