public void BindParameters(OracleCommand cmd, List <PoolEntry <object[]> > rows) { cmd.ArrayBindCount = rows.Count; var paramIndex = 0; foreach (var column in _columnNameToMetadataIndexMap) { object[] arr; if (column.Value >= 0) { arr = _cachedParamsArrayList[column.Value]; var rowIndex = 0; foreach (var row in rows) { arr[rowIndex++] = UseNativeTypeConvertor ? OracleUtils.GetNativeValue(_sourceValueToParamValueDelegate(column.Value, row.Value)) : _sourceValueToParamValueDelegate(column.Value, row.Value); } } else { arr = null; } cmd.Parameters[paramIndex++].Value = arr; } }
private byte[] ReadFromOracle(/*Hash hash, */ string url) { if (url.StartsWith(interopTag)) { url = url.Substring(interopTag.Length); var args = url.Split('/'); var chainName = args[0]; args = args.Skip(1).ToArray(); switch (chainName) { case "neo": return(OracleUtils.ReadNEO(args)); default: throw new OracleException("invalid oracle chain: " + chainName); } } else if (url.StartsWith(priceTag)) { url = url.Substring(interopTag.Length); var symbols = url.Split('/'); if (symbols.Length != 2) { throw new OracleException("invalid oracle price request"); } var baseSymbol = symbols[0]; var quoteSymbol = symbols[1]; if (cryptoCompareAPIKey != null) { var price = CryptoCompareUtils.GetCoinRate(baseSymbol, quoteSymbol, cryptoCompareAPIKey); var val = UnitConversion.ToBigInteger(price, 8); return(val.ToSignedByteArray()); } throw new OracleException("No support for prices"); } else { throw new OracleException("unknown oracle protocol"); } }
public override string ValueToSqlLiteralText(object obj) { return(OracleUtils.ValueToSqlLiteralText(obj)); }
public override object GetNativeValue(object value) { return(OracleUtils.GetNativeValue(value)); }