This commit is contained in:
andrei-mihnea-cerbu
2024-04-08 13:37:58 +03:00
parent 333ad8be09
commit 370bbdedcd
164 changed files with 3915 additions and 161 deletions
+26 -13
View File
@@ -1,10 +1,13 @@
using Application.Services.Database;
using Application.Services.Database.MongoDB;
using Application.Services.HashingAlgorithms;
using Application.Services.Jwt;
using Infrastructure.Data;
using Infrastructure.Services.HashingAlgorithms;
using Infrastructure.Services.MongoDB;
using Infrastructure.Services.PostgreSQL;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
@@ -25,29 +28,39 @@ public static class DependencyInjection
services.AddScoped<IDoctorRepository, DoctorRepository>();
services.AddScoped<IMedicalHistoryRepository, MedicalHistoryRepository>();
// MongoDB Service
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
// MongoDB services
services.AddSingleton<IMedicalHistoryMongoDbService>(serviceProvider =>
new MedicalHistoryMongoDbService(mongoDbConnectionString, healthcareManagerDatabaseName, medicalHistoryCollectionName));
{
var configuration = serviceProvider.GetRequiredService<IConfiguration>();
var connectionString = configuration.GetConnectionString("MongoDBConnection");
var databaseName = configuration["HealthcareManagerDatabase:Name"];
var collectionName = configuration["HealthcareManagerDatabase:MedicalRecordCollectionName"];
return new MedicalHistoryMongoDbService(connectionString, databaseName, collectionName);
});
services.AddSingleton<IChatMongoDbService>(serviceProvider =>
new ChatMongoDbService(mongoDbConnectionString, healthcareManagerDatabaseName, chatCollectionName));
{
var configuration = serviceProvider.GetRequiredService<IConfiguration>();
var connectionString = configuration.GetConnectionString("MongoDBConnection");
var databaseName = configuration["HealthcareManagerDatabase:Name"];
var collectionName = configuration["HealthcareManagerDatabase:ChatCollectionName"];
return new ChatMongoDbService(connectionString, databaseName, collectionName);
});
// Other Services
services.AddScoped<IHashingAlgorithms, HashingAlgorithms>();
services.AddSingleton<IJwtService, JwtService>(serviceProvider =>
{
var configuration = serviceProvider.GetRequiredService<IConfiguration>();
return new JwtService(configuration);
});
// services.AddScoped<IEmailService, EmailService>();
return services;
}
private static string ExtractMongoDbDatabaseName(string connectionString)
{
var connectionStringBuilder = new MongoUrlBuilder(connectionString);