void SetCryptoCurrencies(CheckoutAppearanceViewModel vm, Data.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 == "BTC" && e.PaymentType == PaymentTypes.BTCLike) ?? enabled.FirstOrDefault(e => e.CryptoCode == "BTC" && e.PaymentType == PaymentTypes.LightningLike) ?? enabled.FirstOrDefault(); } var choices = enabled .Select(o => new CheckoutAppearanceViewModel.Format() { Name = o.ToPrettyString(), Value = o.ToString(), PaymentId = o }).ToArray(); var chosen = defaultChoice is null ? null : choices.FirstOrDefault(c => defaultChoice.ToString().Equals(c.Value, StringComparison.OrdinalIgnoreCase)); vm.PaymentMethods = new SelectList(choices, nameof(chosen.Value), nameof(chosen.Name), chosen?.Value); vm.DefaultPaymentMethod = chosen?.Value; }
PaymentMethodOptionViewModel.Format[] GetEnabledPaymentMethodChoices(Data.StoreData storeData) { var enabled = storeData.GetEnabledPaymentIds(_NetworkProvider); return(enabled .Select(o => new PaymentMethodOptionViewModel.Format() { Name = o.ToPrettyString(), Value = o.ToString(), PaymentId = o }).ToArray()); }
void SetCryptoCurrencies(CheckoutExperienceViewModel vm, Data.StoreData storeData) { var choices = storeData.GetEnabledPaymentIds(_NetworkProvider) .Select(o => new CheckoutExperienceViewModel.Format() { Name = o.ToPrettyString(), Value = o.ToString(), PaymentId = o }).ToArray(); var defaultPaymentId = storeData.GetDefaultPaymentId(_NetworkProvider); var chosen = choices.FirstOrDefault(c => c.PaymentId == defaultPaymentId); vm.CryptoCurrencies = new SelectList(choices, nameof(chosen.Value), nameof(chosen.Name), chosen?.Value); vm.DefaultPaymentMethod = chosen?.Value; }
PaymentMethodOptionViewModel.Format?GetDefaultPaymentMethodChoice(Data.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))); }