void.cat/VoidCat/Services/Payment/PaymentFactory.cs
2022-09-07 15:52:40 +01:00

23 lines
658 B
C#

using VoidCat.Model.Payments;
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(PaymentServices svc)
{
return ValueTask.FromResult<IPaymentProvider>(svc switch
{
PaymentServices.Strike => _services.GetRequiredService<StrikePaymentProvider>(),
_ => throw new ArgumentException("Must have a payment config", nameof(svc))
});
}
}