Refactor: Remove BlockExplorerLink from the payment handler

This commit is contained in:
nicolas.dorier
2019-06-04 09:52:06 +09:00
parent 292c188182
commit 796954c6e3
5 changed files with 14 additions and 21 deletions

View File

@@ -106,9 +106,14 @@ namespace BTCPayServer
{
return _Networks.ContainsKey(cryptoCode.ToUpperInvariant());
}
public BTCPayNetworkBase GetNetwork(string cryptoCode)
{
return GetNetwork<BTCPayNetworkBase>(cryptoCode);
}
public T GetNetwork<T>(string cryptoCode) where T: BTCPayNetworkBase
{
if (cryptoCode == null)
throw new ArgumentNullException(nameof(cryptoCode));
if(!_Networks.TryGetValue(cryptoCode.ToUpperInvariant(), out BTCPayNetworkBase network))
{
if (cryptoCode == "XBT")

View File

@@ -110,11 +110,11 @@ namespace BTCPayServer.PaymentRequest
var paymentMethodId = paymentEntity.GetPaymentMethodId();
string txId = paymentData.GetPaymentId();
string link = paymentEntity.PaymentMethodHandlerDictionary[paymentMethodId].GetTransactionLink(paymentMethodId, txId);
string link = GetTransactionLink(paymentMethodId, txId);
return new ViewPaymentRequestViewModel.PaymentRequestInvoicePayment()
{
Amount = paymentData.GetValue(),
PaymentMethod = paymentEntity.GetPaymentMethodId().ToString(),
PaymentMethod = paymentMethodId.ToString(),
Link = link,
Id = txId
};
@@ -122,5 +122,11 @@ namespace BTCPayServer.PaymentRequest
}).ToList()
};
}
private string GetTransactionLink(PaymentMethodId paymentMethodId, string txId)
{
var network = _BtcPayNetworkProvider.GetNetwork(paymentMethodId.CryptoCode);
return string.Format(CultureInfo.InvariantCulture, network.BlockExplorerLink, txId);
}
}
}

View File

@@ -104,14 +104,6 @@ namespace BTCPayServer.Payments.Bitcoin
return network.DisplayName;
}
public override string GetTransactionLink(PaymentMethodId paymentMethodId, params object[] args)
{
var network = _networkProvider.GetNetwork<BTCPayNetwork>(paymentMethodId.CryptoCode);
return string.Format(CultureInfo.InvariantCulture, network.BlockExplorerLink, args);
}
public override object PreparePayment(DerivationSchemeSettings supportedPaymentMethod, StoreData store,
BTCPayNetworkBase network)
{

View File

@@ -53,8 +53,6 @@ namespace BTCPayServer.Payments
Money amount, PaymentMethodId paymentMethodId);
IEnumerable<PaymentMethodId> GetSupportedPaymentMethods();
string GetTransactionLink(PaymentMethodId paymentMethodId, params object[] args);
}
public interface IPaymentMethodHandler<TSupportedPaymentMethod, TBTCPayNetwork> : IPaymentMethodHandler
@@ -88,9 +86,6 @@ namespace BTCPayServer.Payments
public abstract IEnumerable<PaymentMethodId> GetSupportedPaymentMethods();
public abstract string GetTransactionLink(PaymentMethodId paymentMethodId, params object[] args);
public virtual object PreparePayment(TSupportedPaymentMethod supportedPaymentMethod, StoreData store,
BTCPayNetworkBase network)
{

View File

@@ -167,11 +167,6 @@ namespace BTCPayServer.Payments.Lightning
}
return "The amount of the invoice is too high to be paid with lightning";
}
public override string GetTransactionLink(PaymentMethodId paymentMethodId, params object[] args)
{
return null;
}
public override void PrepareInvoiceDto(InvoiceResponse invoiceResponse, InvoiceEntity invoiceEntity,
InvoiceCryptoInfo invoiceCryptoInfo, PaymentMethodAccounting accounting, PaymentMethod info)