Files
social-media/backend/Modules/Tipping/DependencyInjection.cs
2025-06-13 02:22:35 -04:00

32 lines
1.1 KiB
C#

using Hutopy.Modules.Messaging.Data;
using Hutopy.Modules.Tipping.Contracts;
using Hutopy.Modules.Tipping.Data;
using Hutopy.Modules.Tipping.Services;
namespace Hutopy.Modules.Tipping;
public static class DependencyInjection
{
public static WebApplicationBuilder AddTippingModule(
this WebApplicationBuilder builder,
Action<DbContextOptionsBuilder>? configureAction = null)
{
builder.Services.AddDbContext<TippingDbContext>(configureAction);
builder.Services.AddTransient<ITipPaymentNotifier, TipPaymentNotifier>();
return builder;
}
public static async Task<IApplicationBuilder> UseTippingModuleAsync(
this IApplicationBuilder app,
CancellationToken cancellationToken = default)
{
var scopeFactory = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>();
using var scope = scopeFactory.CreateScope();
await using var context = scope.ServiceProvider.GetRequiredService<MessagingDbContext>();
await context.Database.MigrateAsync(cancellationToken: cancellationToken);
return app;
}
}