예제 #1
0
#pragma warning disable CS0618
        public static PaymentMethodId GetDefaultPaymentId(this StoreData storeData, BTCPayNetworkProvider networks)
        {
            PaymentMethodId[] paymentMethodIds = storeData.GetEnabledPaymentIds(networks);
            PaymentMethodId.TryParse(storeData.DefaultCrypto, out var defaultPaymentId);
            var chosen = paymentMethodIds.FirstOrDefault(f => f == defaultPaymentId) ??
                         paymentMethodIds.FirstOrDefault(f => f.CryptoCode == defaultPaymentId?.CryptoCode) ??
                         paymentMethodIds.FirstOrDefault();

            return(chosen);
        }
예제 #2
0
#pragma warning disable CS0618
        public static PaymentMethodId GetDefaultPaymentId(this StoreData storeData, BTCPayNetworkProvider networks)
        {
            PaymentMethodId[] paymentMethodIds = storeData.GetEnabledPaymentIds(networks);

            var defaultPaymentId = string.IsNullOrEmpty(storeData.Defaultbitcoin) ? null : PaymentMethodId.Parse(storeData.Defaultbitcoin);
            var chosen           = paymentMethodIds.FirstOrDefault(f => f == defaultPaymentId) ??
                                   paymentMethodIds.FirstOrDefault(f => f.bitcoinCode == defaultPaymentId?.bitcoinCode) ??
                                   paymentMethodIds.FirstOrDefault();

            return(chosen);
        }
예제 #3
0
        public PaymentMethodOptionViewModel.Format[] GetEnabledPaymentMethodChoices(StoreData storeData)
        {
            var enabled = storeData.GetEnabledPaymentIds(_NetworkProvider);

            return(enabled
                   .Select(o =>
                           new PaymentMethodOptionViewModel.Format()
            {
                Name = o.ToPrettyString(),
                Value = o.ToString(),
                PaymentId = o
            }).ToArray());
        }
예제 #4
0
        PaymentMethodOptionViewModel.Format?GetDefaultPaymentMethodChoice(StoreData storeData)
        {
            var enabled          = storeData.GetEnabledPaymentIds(_NetworkProvider);
            var defaultPaymentId = storeData.GetDefaultPaymentId();
            var defaultChoice    = defaultPaymentId is not null?defaultPaymentId.FindNearest(enabled) : null;

            if (defaultChoice is null)
            {
                defaultChoice = enabled.FirstOrDefault(e => e.CryptoCode == _NetworkProvider.DefaultNetwork.CryptoCode && e.PaymentType == PaymentTypes.BTCLike) ??
                                enabled.FirstOrDefault(e => e.CryptoCode == _NetworkProvider.DefaultNetwork.CryptoCode && e.PaymentType == PaymentTypes.LightningLike) ??
                                enabled.FirstOrDefault();
            }
            var choices = GetEnabledPaymentMethodChoices(storeData);

            return(defaultChoice is null ? null : choices.FirstOrDefault(c => defaultChoice.ToString().Equals(c.Value, StringComparison.OrdinalIgnoreCase)));
        }
        public static List <PaymentMethodCriteria> GetPaymentMethodCriteria(this StoreData storeData, BTCPayNetworkProvider networkProvider, StoreBlob storeBlob = null)
        {
#pragma warning disable 612
            storeBlob ??= storeData.GetStoreBlob();

            return(storeData.GetEnabledPaymentIds(networkProvider).Select(paymentMethodId =>
            {
                var matchedFromBlob =
#pragma warning disable CS0618 // Type or member is obsolete
                    storeBlob.PaymentMethodCriteria?.SingleOrDefault(criteria => criteria.PaymentMethod == paymentMethodId && criteria.Value != null);
#pragma warning restore CS0618 // Type or member is obsolete
                if (matchedFromBlob is null && paymentMethodId.PaymentType == LightningPaymentType.Instance && storeBlob.LightningMaxValue != null)
                {
                    return new PaymentMethodCriteria()
                    {
                        Above = false,
                        PaymentMethod = paymentMethodId,
                        Value = storeBlob.LightningMaxValue
                    };
                }
                if (matchedFromBlob is null && paymentMethodId.PaymentType == BitcoinPaymentType.Instance && storeBlob.OnChainMinValue != null)
                {
                    return new PaymentMethodCriteria()
                    {
                        Above = true,
                        PaymentMethod = paymentMethodId,
                        Value = storeBlob.OnChainMinValue
                    };
                }

                return new PaymentMethodCriteria()
                {
                    PaymentMethod = paymentMethodId,
                    Above = matchedFromBlob?.Above ?? true,
                    Value = matchedFromBlob?.Value
                };
            }).ToList());

#pragma warning restore 612
        }
 public Task <IEnumerable <PaymentMethodId> > GetSupportedPaymentMethods(StoreData storeData)
 {
     return(Task.FromResult(storeData.GetEnabledPaymentIds(_btcPayNetworkProvider)
                            .Where(id => id.PaymentType == BitcoinPaymentType.Instance)));
 }