Move GetDefaultPaymentId out of InvoiceExtensions

This commit is contained in:
Umar Bolatov
2021-09-04 14:35:08 -07:00
committed by Andrew Camilleri
parent b2f9353be1
commit e6aa73197a
2 changed files with 13 additions and 15 deletions

View File

@@ -467,6 +467,18 @@ namespace BTCPayServer.Controllers
return View(model); return View(model);
} }
private PaymentMethodId GetDefaultInvoicePaymentId(
PaymentMethodId[] paymentMethodIds,
InvoiceEntity invoice
)
{
PaymentMethodId.TryParse(invoice.DefaultPaymentMethod, out var defaultPaymentId);
return paymentMethodIds.FirstOrDefault(f => f == defaultPaymentId) ??
paymentMethodIds.FirstOrDefault(f => f.CryptoCode == defaultPaymentId?.CryptoCode) ??
paymentMethodIds.FirstOrDefault();
}
private async Task<PaymentModel?> GetInvoiceModel(string invoiceId, PaymentMethodId? paymentMethodId, string? lang) private async Task<PaymentModel?> GetInvoiceModel(string invoiceId, PaymentMethodId? paymentMethodId, string? lang)
{ {
var invoice = await _InvoiceRepository.GetInvoice(invoiceId); var invoice = await _InvoiceRepository.GetInvoice(invoiceId);
@@ -476,7 +488,7 @@ namespace BTCPayServer.Controllers
bool isDefaultPaymentId = false; bool isDefaultPaymentId = false;
if (paymentMethodId is null) if (paymentMethodId is null)
{ {
paymentMethodId = _InvoiceRepository.GetDefaultPaymentId(store.GetEnabledPaymentIds(_NetworkProvider), invoice) ?? store.GetDefaultPaymentId(_NetworkProvider); paymentMethodId = GetDefaultInvoicePaymentId(store.GetEnabledPaymentIds(_NetworkProvider), invoice) ?? store.GetDefaultPaymentId(_NetworkProvider);
isDefaultPaymentId = true; isDefaultPaymentId = true;
} }
BTCPayNetworkBase network = _NetworkProvider.GetNetwork<BTCPayNetworkBase>(paymentMethodId.CryptoCode); BTCPayNetworkBase network = _NetworkProvider.GetNetwork<BTCPayNetworkBase>(paymentMethodId.CryptoCode);

View File

@@ -48,19 +48,5 @@ namespace BTCPayServer.Services.Invoices
eventAggregator.Publish(new InvoiceNeedUpdateEvent(invoice.Id)); eventAggregator.Publish(new InvoiceNeedUpdateEvent(invoice.Id));
} }
} }
public static PaymentMethodId GetDefaultPaymentId(
this InvoiceRepository invoiceRepository,
PaymentMethodId[] paymentMethodIds,
InvoiceEntity invoice
)
{
PaymentMethodId.TryParse(invoice.DefaultPaymentMethod, out var defaultPaymentId);
var chosen = paymentMethodIds.FirstOrDefault(f => f == defaultPaymentId) ??
paymentMethodIds.FirstOrDefault(f => f.CryptoCode == defaultPaymentId?.CryptoCode) ??
paymentMethodIds.FirstOrDefault();
return chosen;
}
} }
} }