private string SetDelimeter(string name, AdapterTypeItemEnum adapter) { string nameDelimeted = name; switch (adapter) { case (AdapterTypeItemEnum.MSSQL): nameDelimeted = $"[{name}]"; break; case (AdapterTypeItemEnum.MySQL): nameDelimeted = $"`{name}`"; break; case (AdapterTypeItemEnum.Oracle): nameDelimeted = $"\"{name}\""; break; case (AdapterTypeItemEnum.MongoDB): //check for reserved words in MongoDB break; } return(nameDelimeted); }
public async Task <Response <int> > GetCurrentBlockNumber(long adapterId, AdapterTypeItemEnum adapterType) { var response = new Response <int>(); try { var cryptoAdapter = _entities.Adapter.Find(adapterId).CryptoAdapter.FirstOrDefault(); var cryptoAdapterModel = new CryptoAdapterModel { RpcAddr = cryptoAdapter.RpcAddr }; if (cryptoAdapter.RpcPort != null) { cryptoAdapterModel.RpcPort = UInt16.Parse(cryptoAdapter.RpcPort); } switch (adapterType) { case AdapterTypeItemEnum.Ethereum: var ethAdapter = new EthereumAdapter(_logger); response = await ethAdapter.GetCurrentBlockNumber(cryptoAdapterModel); break; case AdapterTypeItemEnum.Bitcoin: var btcUsername = cryptoAdapter.CryptoAdapterProperty.FirstOrDefault(cap => cap.PropertyId == (long)PropertyEnum.RpcUsername).Value; var btcPassword = cryptoAdapter.CryptoAdapterProperty.FirstOrDefault(cap => cap.PropertyId == (long)PropertyEnum.RpcPassword).Value; var btcAdapter = new BitcoinAdapter(_logger); response = btcAdapter.GetCurrentBlockNumber(cryptoAdapterModel, btcUsername, btcPassword); break; case AdapterTypeItemEnum.NEO: var neoAdapter = new NEOAdapter(_logger); response = await neoAdapter.GetCurrentBlockNumber(cryptoAdapterModel); break; case AdapterTypeItemEnum.Litecoin: var ltcUsername = cryptoAdapter.CryptoAdapterProperty.FirstOrDefault(cap => cap.PropertyId == (long)PropertyEnum.RpcUsername).Value; var ltcPassword = cryptoAdapter.CryptoAdapterProperty.FirstOrDefault(cap => cap.PropertyId == (long)PropertyEnum.RpcPassword).Value; var ltcAdapter = new LitecoinAdapter(_logger); response = ltcAdapter.GetCurrentBlockNumber(cryptoAdapterModel, ltcUsername, ltcPassword); break; default: break; } } catch (Exception ex) { response.Status = StatusEnum.Error; response.Message = Message.SomethingWentWrong; _logger.Information($"BlockchainService.GetCurrentBlockNumber(adapterId: {adapterId}, adapterType: {adapterType}"); _logger.Error(ex.Message); } return(response); }