void.cat/VoidCat/Services/Payment/PaymentFactory.cs

23 lines
650 B
C#
Raw Normal View History

using VoidCat.Database;
2022-09-07 14:52:40 +00:00
using VoidCat.Services.Abstractions;
namespace VoidCat.Services.Payment;
public class PaymentFactory : IPaymentFactory
{
private readonly IServiceProvider _services;
public PaymentFactory(IServiceProvider services)
{
_services = services;
}
public ValueTask<IPaymentProvider> CreateProvider(PaywallService svc)
2022-09-07 14:52:40 +00:00
{
return ValueTask.FromResult<IPaymentProvider>(svc switch
{
PaywallService.Strike => _services.GetRequiredService<StrikePaymentProvider>(),
2022-09-07 14:52:40 +00:00
_ => throw new ArgumentException("Must have a payment config", nameof(svc))
});
}
}