using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Knot.Modules.Stories.Application.Abstractions; using Knot.Modules.Stories.Infrastructure.External; using Knot.Modules.Stories.Infrastructure.Persistence.Mongo; using MongoDB.Driver; using System.Net.Http; namespace Knot.Modules.Stories; public static class DependencyInjection { public static IServiceCollection AddStoriesModule(this IServiceCollection services, IConfiguration configuration) { services.AddScoped(); services.AddHttpClient(); var connectionString = configuration.GetConnectionString("DefaultConnection"); services.AddDbContext(options => options.UseNpgsql(connectionString)); // MongoDB configuration happens in StoriesMongoMapConfigurator (called in Program.cs when EncryptionService is ready, or we can just call it here) StoriesMongoMapConfigurator.Configure(); services.AddMediatR(config => config.RegisterServicesFromAssembly(typeof(DependencyInjection).Assembly)); return services; } }