23 lines
658 B
C#
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))
|
|
});
|
|
}
|
|
} |