37 lines
1.6 KiB
C#
37 lines
1.6 KiB
C#
using Socialize.Api.Infrastructure.BlobStorage.Contracts;
|
|
using Socialize.Api.Infrastructure.BlobStorage.Services;
|
|
using Socialize.Api.Infrastructure.BlobStorage.Configuration;
|
|
using Socialize.Api.Infrastructure.Configuration;
|
|
using Socialize.Api.Infrastructure.Emailer.Configuration;
|
|
using Socialize.Api.Infrastructure.Emailer.Contracts;
|
|
using Socialize.Api.Infrastructure.Emailer.Services;
|
|
using Socialize.Api.Infrastructure.Payments.Stripe.Configuration;
|
|
|
|
namespace Socialize.Api.Infrastructure;
|
|
|
|
public static class DependencyInjection
|
|
{
|
|
public static WebApplicationBuilder AddInfrastructureModule(
|
|
this WebApplicationBuilder builder)
|
|
{
|
|
builder.Services.Configure<WebsiteOptions>(
|
|
builder.Configuration.GetRequiredSection(WebsiteOptions.SectionName));
|
|
|
|
builder.Services.Configure<LocalBlobStorageOptions>(
|
|
builder.Configuration.GetSection(LocalBlobStorageOptions.SectionName));
|
|
builder.Services.AddTransient<LocalBlobStorage>();
|
|
builder.Services.AddTransient<IBlobStorage>(services => services.GetRequiredService<LocalBlobStorage>());
|
|
builder.Services.Configure<StripeOptions>(
|
|
builder.Configuration.GetSection(StripeOptions.ConfigurationSection));
|
|
|
|
builder.Services.Configure<EmailerOptions>(
|
|
builder.Configuration.GetSection(EmailerOptions.ConfigurationSection));
|
|
builder.Services.AddTransient<IEmailSender, ResendEmailSender>();
|
|
//builder.Services.AddTransient<IEmailSender, EmailSender>();
|
|
|
|
builder.Services.AddHttpClient();
|
|
|
|
return builder;
|
|
}
|
|
}
|