Refactor: Move DeserializePaymentMethodDetails to PaymentType

This commit is contained in:
nicolas.dorier 2019-06-04 09:22:46 +09:00
parent 8ffd182b98
commit b97e083017
No known key found for this signature in database
GPG key ID: 6618763EF09186FE
4 changed files with 17 additions and 14 deletions

View file

@ -19,9 +19,14 @@ namespace BTCPayServer.Payments
public override string ToPrettyString() => "On-Chain";
public override string GetId() => "BTCLike";
public override CryptoPaymentData DeserializePaymentData(string cryptoPaymentData)
public override CryptoPaymentData DeserializePaymentData(string str)
{
return JsonConvert.DeserializeObject<BitcoinLikePaymentData>(cryptoPaymentData);
return JsonConvert.DeserializeObject<BitcoinLikePaymentData>(str);
}
public override IPaymentMethodDetails DeserializePaymentMethodDetails(string str)
{
return JsonConvert.DeserializeObject<Payments.Bitcoin.BitcoinLikeOnChainPaymentMethod>(str);
}
}
}

View file

@ -18,9 +18,14 @@ namespace BTCPayServer.Payments
public override string ToPrettyString() => "Off-Chain";
public override string GetId() => "LightningLike";
public override CryptoPaymentData DeserializePaymentData(string cryptoPaymentData)
public override CryptoPaymentData DeserializePaymentData(string str)
{
return JsonConvert.DeserializeObject<Payments.Lightning.LightningLikePaymentData>(cryptoPaymentData);
return JsonConvert.DeserializeObject<Payments.Lightning.LightningLikePaymentData>(str);
}
public override IPaymentMethodDetails DeserializePaymentMethodDetails(string str)
{
return JsonConvert.DeserializeObject<Payments.Lightning.LightningLikePaymentMethodDetails>(str);
}
}
}

View file

@ -55,6 +55,7 @@ namespace BTCPayServer.Payments
}
public abstract string GetId();
public abstract CryptoPaymentData DeserializePaymentData(string cryptoPaymentData);
public abstract CryptoPaymentData DeserializePaymentData(string str);
public abstract IPaymentMethodDetails DeserializePaymentMethodDetails(string str);
}
}

View file

@ -756,15 +756,7 @@ namespace BTCPayServer.Services.Invoices
else
{
var paymentType = GetId().PaymentType;
IPaymentMethodDetails details = null;
if (paymentType == PaymentTypes.BTCLike)
{
details = JsonConvert.DeserializeObject<Payments.Bitcoin.BitcoinLikeOnChainPaymentMethod>(PaymentMethodDetails.ToString());
}
else
{
details = JsonConvert.DeserializeObject<Payments.Lightning.LightningLikePaymentMethodDetails>(PaymentMethodDetails.ToString());
}
IPaymentMethodDetails details = paymentType.DeserializePaymentMethodDetails(PaymentMethodDetails.ToString());
if (details is Payments.Bitcoin.BitcoinLikeOnChainPaymentMethod btcLike)
{
btcLike.NextNetworkFee = NextNetworkFee;