protected override object GetDataFromSource() { var gateways = PaymentAccountDetails.AllGateways; var availableGateways = new HashSet <PaymentProcessor>(); foreach (var gateway in gateways) { if (gateway.IsActive && (gateway.Cashflow == GatewayCashflowDirection.ToGate || gateway.Cashflow == GatewayCashflowDirection.Both)) { availableGateways.Add(gateway.GetProcessorType()); } } var cryptocurrencies = CryptocurrencyFactory.GetAllAvailable(); foreach (var crypto in cryptocurrencies) { if (crypto.DepositApiProcessor != 0 && CryptocurrencyApiFactory.Get(crypto.DepositApiProcessor).AllowToUsePaymentButtons()) { if (crypto.DepositApiProcessor == CryptocurrencyAPIProvider.CoinPayments) { availableGateways.Add(PaymentProcessor.CoinPayments); } if (crypto.DepositApiProcessor == CryptocurrencyAPIProvider.Coinbase) { availableGateways.Add(PaymentProcessor.Coinbase); } } } return(availableGateways.Distinct().ToList()); }