private void AddPaymentMethods(StoreData store, StoreBlob storeBlob, StoreViewModel vm) { var excludeFilters = storeBlob.GetExcludedPaymentMethods(); var derivationByCryptoCode = store .GetSupportedPaymentMethods(_NetworkProvider) .OfType <DerivationSchemeSettings>() .ToDictionary(c => c.Network.CryptoCode.ToUpperInvariant()); var lightningByCryptoCode = store .GetSupportedPaymentMethods(_NetworkProvider) .OfType <LightningSupportedPaymentMethod>() .ToDictionary(c => c.CryptoCode.ToUpperInvariant()); foreach (var paymentMethodId in _paymentMethodHandlerDictionary.Distinct().SelectMany(handler => handler.GetSupportedPaymentMethods())) { switch (paymentMethodId.PaymentType) { case BitcoinPaymentType _: var strategy = derivationByCryptoCode.TryGet(paymentMethodId.CryptoCode); var network = _NetworkProvider.GetNetwork <BTCPayNetwork>(paymentMethodId.CryptoCode); var value = strategy?.ToPrettyString() ?? string.Empty; vm.DerivationSchemes.Add(new StoreViewModel.DerivationScheme() { Crypto = paymentMethodId.CryptoCode, WalletSupported = network.WalletSupported, Value = value, WalletId = new WalletId(store.Id, paymentMethodId.CryptoCode), Enabled = !excludeFilters.Match(paymentMethodId) && strategy != null, #if ALTCOINS Collapsed = network is ElementsBTCPayNetwork elementsBTCPayNetwork && elementsBTCPayNetwork.NetworkCryptoCode != elementsBTCPayNetwork.CryptoCode && string.IsNullOrEmpty(value) #endif }); break;
private void AddPaymentMethods(StoreData store, StoreBlob storeBlob, StoreViewModel vm) { var excludeFilters = storeBlob.GetExcludedPaymentMethods(); var derivationByCryptoCode = store .GetSupportedPaymentMethods(_NetworkProvider) .OfType <DerivationSchemeSettings>() .ToDictionary(c => c.Network.CryptoCode); var lightningByCryptoCode = store .GetSupportedPaymentMethods(_NetworkProvider) .OfType <LightningSupportedPaymentMethod>() .ToDictionary(c => c.CryptoCode); foreach (var paymentMethodId in _paymentMethodHandlerDictionary.Distinct().SelectMany(handler => handler.GetSupportedPaymentMethods())) { switch (paymentMethodId.PaymentType) { case BitcoinPaymentType _: var strategy = derivationByCryptoCode.TryGet(paymentMethodId.CryptoCode); vm.DerivationSchemes.Add(new StoreViewModel.DerivationScheme() { Crypto = paymentMethodId.CryptoCode, Value = strategy?.ToPrettyString() ?? string.Empty, WalletId = new WalletId(store.Id, paymentMethodId.CryptoCode), Enabled = !excludeFilters.Match(paymentMethodId) && strategy != null }); break; case LightningPaymentType _: var lightning = lightningByCryptoCode.TryGet(paymentMethodId.CryptoCode); vm.LightningNodes.Add(new StoreViewModel.LightningNode() { CryptoCode = paymentMethodId.CryptoCode, Address = lightning?.GetLightningUrl()?.BaseUri.AbsoluteUri ?? string.Empty, Enabled = !excludeFilters.Match(paymentMethodId) && lightning?.GetLightningUrl() != null }); break; } } var changellyEnabled = storeBlob.ChangellySettings != null && storeBlob.ChangellySettings.Enabled; vm.ThirdPartyPaymentMethods.Add(new StoreViewModel.AdditionalPaymentMethod() { Enabled = changellyEnabled, Action = nameof(UpdateChangellySettings), Provider = "Changelly" }); var coinSwitchEnabled = storeBlob.CoinSwitchSettings != null && storeBlob.CoinSwitchSettings.Enabled; vm.ThirdPartyPaymentMethods.Add(new StoreViewModel.AdditionalPaymentMethod() { Enabled = coinSwitchEnabled, Action = nameof(UpdateCoinSwitchSettings), Provider = "CoinSwitch" }); }
private void AddPaymentMethods(StoreData store, StoreBlob storeBlob, StoreViewModel vm) { var excludeFilters = storeBlob.GetExcludedPaymentMethods(); var derivationByCryptoCode = store .GetSupportedPaymentMethods(_NetworkProvider) .OfType <DerivationStrategy>() .ToDictionary(c => c.Network.CryptoCode); foreach (var network in _NetworkProvider.GetAll()) { var strategy = derivationByCryptoCode.TryGet(network.CryptoCode); vm.DerivationSchemes.Add(new StoreViewModel.DerivationScheme() { Crypto = network.CryptoCode, Value = strategy?.DerivationStrategyBase?.ToString() ?? string.Empty, WalletId = new WalletId(store.Id, network.CryptoCode), Enabled = !excludeFilters.Match(new Payments.PaymentMethodId(network.CryptoCode, Payments.PaymentTypes.BTCLike)) }); } var lightningByCryptoCode = store .GetSupportedPaymentMethods(_NetworkProvider) .OfType <Payments.Lightning.LightningSupportedPaymentMethod>() .ToDictionary(c => c.CryptoCode); foreach (var network in _NetworkProvider.GetAll()) { var lightning = lightningByCryptoCode.TryGet(network.CryptoCode); var paymentId = new Payments.PaymentMethodId(network.CryptoCode, Payments.PaymentTypes.LightningLike); vm.LightningNodes.Add(new StoreViewModel.LightningNode() { CryptoCode = network.CryptoCode, Address = lightning?.GetLightningUrl()?.BaseUri.AbsoluteUri ?? string.Empty, Enabled = !excludeFilters.Match(paymentId) }); } var changellyEnabled = storeBlob.ChangellySettings != null && storeBlob.ChangellySettings.Enabled; vm.ThirdPartyPaymentMethods.Add(new StoreViewModel.ThirdPartyPaymentMethod() { Enabled = changellyEnabled, Action = nameof(UpdateChangellySettings), Provider = "Changelly" }); var coinSwitchEnabled = storeBlob.CoinSwitchSettings != null && storeBlob.CoinSwitchSettings.Enabled; vm.ThirdPartyPaymentMethods.Add(new StoreViewModel.ThirdPartyPaymentMethod() { Enabled = coinSwitchEnabled, Action = nameof(UpdateCoinSwitchSettings), Provider = "CoinSwitch" }); }