Esempio n. 1
0
    private static Result OnQuery()
    {
        var columns = new List <string>();
        var rows    = new List <string[]>();
        var types   = new List <string>();

        for (var index = 0; index < reader.FieldCount; index++)
        {
            var columnName = reader.GetName(index);
            var columnType = OracleAdapter.GetType(reader.GetFieldType(index));

            columns.Add(columnName);
            types.Add(columnType);
        }

        while (reader.Read())
        {
            var row = new string[reader.FieldCount];
            for (var index = 0; index < reader.FieldCount; index++)
            {
                var columnName = reader.GetName(index);
                var columnType = OracleAdapter.GetType(reader.GetFieldType(index));

                var columnIndex = columns.IndexOf(columnName);
                if (types[columnIndex] != "array")
                {
                    types[columnIndex] = columnType;
                }
                object value = null;
                if (!reader.IsDBNull(index))
                {
                    if (columnType == "array")
                    {
                        value = OracleAdapter.GetBytes(index);
                    }
                    else
                    {
                        value = reader.GetValue(index);
                    }
                }

                if (value == null)
                {
                    value = "";
                }
                row[index] = value.ToString();
            }
            rows.Add(row);
        }

        return(End(new Result {
            Success = true, Columns = columns.ToArray(), Rows = rows.ToArray(), Types = types.ToArray()
        }));
    }
Esempio n. 2
0
 IDataClient GetDataClient(string ClientType)
 {
     if (ClientType == "SQL")
     {
         if (sqlClient != null)
         {
             return(sqlClient);
         }
         sqlClient = new SqlAdapter();
         return(sqlClient);
     }
     else if (ClientType == "ORACLE")
     {
         if (oraClient != null)
         {
             return(oraClient);
         }
         oraClient = new OracleAdapter();
         return(oraClient);
     }
     else if (ClientType == "SQLite")
     {
         if (sqliteClient != null)
         {
             return(sqliteClient);
         }
         sqliteClient = new SQLiteAdapter();
         return(sqliteClient);
     }
     else if (ClientType == "OleDb")
     {
         if (oleDbClient != null)
         {
             return(oleDbClient);
         }
         oleDbClient = new OleDbAdapter();
         return(oleDbClient);
     }
     else if (ClientType == "Postgre")
     {
         if (postgreClient != null)
         {
             return(postgreClient);
         }
         postgreClient = new PostgreAdapter();
         return(postgreClient);
     }
     return(null);
 }
Esempio n. 3
0
        public IResponse <List <GenericModel> > GetAdapterData(long jobDefinitionId)
        {
            var response = new Response <List <GenericModel> >
            {
                Value = new List <GenericModel>()
            };

            try
            {
                var adapterParameters = _jobDefinitionService.GetAdapterParameter(jobDefinitionId);
                if (adapterParameters.Status != StatusEnum.Success)
                {
                    response.Status = StatusEnum.Error;
                    return(response);
                }

                IAdapter adapter;
                switch (adapterParameters.Value.Adapter)
                {
                case AdapterTypeItemEnum.MSSQL:
                    adapter  = new MSSQLAdapter(_logger);
                    response = adapter.ConnectAndRead(adapterParameters.Value.QueryRead, adapterParameters.Value.ConnString.MSSQLConnString);

                    break;

                case AdapterTypeItemEnum.MySQL:
                    adapter  = new MySQLAdapter(_logger);
                    response = adapter.ConnectAndRead(adapterParameters.Value.QueryRead, adapterParameters.Value.ConnString.MySQLConnString);

                    break;

                case AdapterTypeItemEnum.Oracle:
                    adapter  = new OracleAdapter(_logger);
                    response = adapter.ConnectAndRead(adapterParameters.Value.QueryRead, adapterParameters.Value.ConnString.OracleConnString);

                    break;
                }
            }
            catch (Exception ex)
            {
                _logger.Information($"DbAdapterService.GetAdapterData(jobId: {jobDefinitionId})");
                _logger.Error(ex.Message);
                response.Status = StatusEnum.Error;
            }

            return(response);
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            var    command = (CommandJson) new DataContractJsonSerializer(typeof(CommandJson)).ReadObject(HttpContext.Current.Request.InputStream);
            Result result  = new Result();
            if (command.Database == "MySQL")
            {
                result = MySQLAdapter.Process(command);
            }
            if (command.Database == "Firebird")
            {
                result = FirebirdAdapter.Process(command);
            }
            if (command.Database == "MS SQL")
            {
                result = MSSQLAdapter.Process(command);
            }
            if (command.Database == "PostgreSQL")
            {
                result = PostgreSQLAdapter.Process(command);
            }
            if (command.Database == "Oracle")
            {
                result = OracleAdapter.Process(command);
            }

            var serializer = new DataContractJsonSerializer(typeof(Result));

            serializer.WriteObject(HttpContext.Current.Response.OutputStream, result);
            HttpContext.Current.Response.Headers.Add("Access-Control-Allow-Origin", "*");
            HttpContext.Current.Response.Headers.Add("Cache-Control", "no-cache");

            HttpContext.Current.Response.OutputStream.Flush();
            HttpContext.Current.Response.End();
        }
        catch {}
    }
Esempio n. 5
0
        public IResponse <NoValue> SendToRelationalDb <T>(long jobId, List <T> blocks)
        {
            var response = new Response <NoValue>();

            try
            {
                if (blocks.Count == 0)
                {
                    response.Status = StatusEnum.Success;
                    return(response);
                }

                var enterpriseAdapter = _entity.JobTimeline.Find(jobId).Schedule.JobDefinition.Adapter1.EnterpriseAdapter.FirstOrDefault();

                var query = new QueryWrite
                {
                    TableNamePrefix = enterpriseAdapter.EnterpriseAdapterProperty.FirstOrDefault(eap => eap.PropertyId == (int)PropertyEnum.TableNamePrefix).Value
                };

                if (typeof(T) == typeof(EthereumBlockModel))
                {
                    var model = (List <EthereumBlockModel>)Convert.ChangeType(blocks, typeof(List <EthereumBlockModel>));
                    query.CryptoAdapterType = CryptoAdapterType.Ethereum;

                    for (var i = 0; i < model.Count; i++)
                    {
                        model[i].BlockIdSQL = Guid.NewGuid();

                        for (var j = 0; j < model[i].BlockTransactions.Count; j++)
                        {
                            model[i].BlockTransactions[j].ParentBlockId    = model[i].BlockIdSQL;
                            model[i].BlockTransactions[j].TransactionIdSQL = Guid.NewGuid();
                        }
                    }
                    query.EthereumBlockModel = model;
                }
                else
                {
                    foreach (T block in blocks)
                    {
                        var blockIdSQL = typeof(T).GetProperty("BlockIdSQL");
                        blockIdSQL.SetValue(block, Guid.NewGuid());

                        var transactionList = (IEnumerable)typeof(T).GetProperty("TransactionList").GetValue(block);

                        foreach (var transaction in transactionList)
                        {
                            var transactionType  = transaction.GetType();
                            var transactionIdSQL = transactionType.GetProperty("TransactionIdSQL");
                            transactionIdSQL.SetValue(transaction, Guid.NewGuid());

                            var parentBlockIdSQL = transactionType.GetProperty("ParentBlockIdSQL");
                            parentBlockIdSQL.SetValue(transaction, blockIdSQL.GetValue(block));

                            var transactionInputList = (IEnumerable)transactionType.GetProperty("TransactionInputs").GetValue(transaction);

                            foreach (var input in transactionInputList)
                            {
                                var transactionInIdSQL = input.GetType().GetProperty("TransactionInIdSQL");
                                transactionInIdSQL.SetValue(input, Guid.NewGuid());

                                var parentTransactionIdSQL = input.GetType().GetProperty("ParentTransactionIdSQL");
                                parentTransactionIdSQL.SetValue(input, transactionIdSQL.GetValue(transaction));
                            }

                            var transactionOutputList = (IEnumerable)transactionType.GetProperty("TransactionOutputs").GetValue(transaction);

                            foreach (var output in transactionOutputList)
                            {
                                var transactionOutIdSQL = output.GetType().GetProperty("TransactionOutIdSQL");
                                transactionOutIdSQL.SetValue(output, Guid.NewGuid());

                                var parentTransactionIdSQL = output.GetType().GetProperty("ParentTransactionIdSQL");
                                parentTransactionIdSQL.SetValue(output, transactionIdSQL.GetValue(transaction));
                            }
                        }
                    }

                    if (typeof(T) == typeof(BitcoinBlockModel))
                    {
                        var model = (List <BitcoinBlockModel>)Convert.ChangeType(blocks, typeof(List <BitcoinBlockModel>));
                        query.CryptoAdapterType = CryptoAdapterType.Bitcoin;
                        query.BitcoinBlockModel = model;
                    }
                    else if (typeof(T) == typeof(NeoBlockModel))
                    {
                        var model = (List <NeoBlockModel>)Convert.ChangeType(blocks, typeof(List <NeoBlockModel>));
                        query.CryptoAdapterType = CryptoAdapterType.NEO;
                        query.NEOBlockModel     = model;
                    }
                    else if (typeof(T) == typeof(LitecoinBlockModel))
                    {
                        var model = (List <LitecoinBlockModel>)Convert.ChangeType(blocks, typeof(List <LitecoinBlockModel>));
                        query.CryptoAdapterType  = CryptoAdapterType.Litecoin;
                        query.LitecoinBlockModel = model;
                    }
                }

                var config = new Config
                {
                    ConnString = new DbAdapter.ConnStringCreator
                    {
                        Server   = enterpriseAdapter.ServerIP,
                        Port     = enterpriseAdapter.Port.ToString(),
                        Uid      = enterpriseAdapter.Username,
                        Pwd      = enterpriseAdapter.Password,
                        Database = enterpriseAdapter.DatabaseName
                    },
                    Adapter    = (AdapterTypeItemEnum)enterpriseAdapter.Adapter.AdapterTypeItemId,
                    QueryWrite = query
                };

                IAdapter adapter;
                switch (config.Adapter)
                {
                case AdapterTypeItemEnum.MSSQL:
                    adapter  = new MSSQLAdapter(_logger);
                    response = adapter.ConnectAndWrite(config.QueryWrite, config.ConnString.MSSQLConnString);
                    break;

                case AdapterTypeItemEnum.MySQL:
                    adapter  = new MySQLAdapter(_logger);
                    response = adapter.ConnectAndWrite(config.QueryWrite, config.ConnString.MySQLConnString);
                    break;

                case AdapterTypeItemEnum.Oracle:
                    adapter  = new OracleAdapter(_logger);
                    response = adapter.ConnectAndWrite(config.QueryWrite, config.ConnString.OracleConnString);
                    break;
                }
            }
            catch (Exception ex)
            {
                response.Status  = StatusEnum.Error;
                response.Message = ex.Message;
                _logger.Information($"DbAdapterService.SendToRelationalDb(jobid: {jobId}, block:{blocks})");
                _logger.Error(ex.Message);
            }

            return(response);
        }
        private IResponse <NoValue> TestConnection(EnterpriseAdapterModel enterpriseAdapter)
        {
            var connectionResponse = new Response <NoValue>();

            var config = new Config
            {
                ConnString = new ConnStringCreator
                {
                    Server   = enterpriseAdapter.ServerIP,
                    Port     = enterpriseAdapter.Port.ToString(),
                    Database = enterpriseAdapter.DatabaseName,
                    Pwd      = enterpriseAdapter.Password,
                    Uid      = enterpriseAdapter.Username
                }
            };

            IAdapter            adapter;
            IResponse <NoValue> connectionStatus = null;

            switch (enterpriseAdapter.EnterpriseAdapter)
            {
            case AdapterTypeItemEnum.MSSQL:
                adapter = new MSSQLAdapter(_logger);

                if (enterpriseAdapter.Direction == DirectionEnum.Source)
                {
                    connectionStatus = adapter.TestConnectivity(config.ConnString.MSSQLConnString, enterpriseAdapter.ParentTable);
                }
                else
                {
                    connectionStatus = adapter.TestConnectivity(config.ConnString.MSSQLConnString);
                }
                break;

            case AdapterTypeItemEnum.MySQL:
                adapter = new MySQLAdapter(_logger);

                if (enterpriseAdapter.Direction == DirectionEnum.Source)
                {
                    connectionStatus = adapter.TestConnectivity(config.ConnString.MySQLConnString, enterpriseAdapter.ParentTable);
                }
                else
                {
                    connectionStatus = adapter.TestConnectivity(config.ConnString.MySQLConnString);
                }
                break;

            case AdapterTypeItemEnum.Oracle:
                adapter = new OracleAdapter(_logger);

                if (enterpriseAdapter.Direction == DirectionEnum.Source)
                {
                    connectionStatus = adapter.TestConnectivity(config.ConnString.OracleConnString, enterpriseAdapter.ParentTable);
                }
                else
                {
                    connectionStatus = adapter.TestConnectivity(config.ConnString.OracleConnString);
                }
                break;

            case AdapterTypeItemEnum.MongoDB:
                var mongoAdapter = new MongoDbAdapter(_logger);
                connectionStatus = mongoAdapter.TestConnection(config.ConnString.MongoDbConnString, enterpriseAdapter.DatabaseName);
                break;
            }

            if (connectionStatus.Status != StatusEnum.Success)
            {
                connectionResponse.Status  = StatusEnum.Error;
                connectionResponse.Message = connectionStatus.Message;
            }
            else
            {
                connectionResponse.Status = StatusEnum.Success;
            }
            return(connectionResponse);
        }
        public static ReaderAdapter Create(SchemaParameters schemaParameters)
        {
            ReaderAdapter schemaReader = null;
            switch (schemaParameters.SqlType)
            {
                case SqlType.SqlServer:
                    return new SqlServerAdapter(schemaParameters);
                case SqlType.Oracle:
                    schemaReader = new OracleAdapter(schemaParameters);
                    break;
                case SqlType.SQLite:
                    schemaReader = new SqLiteAdapter(schemaParameters);
                    break;
                case SqlType.PostgreSql:
                    schemaReader = new PostgreSqlAdapter(schemaParameters);
                    break;
                case SqlType.MySql:
                    schemaReader = new MySqlAdapter(schemaParameters);
                    break;
                case SqlType.SqlServerCe:
                    schemaReader = new SqlServerCeAdapter(schemaParameters);
                    break;

                default:
                    //var providerName = schemaParameters.ProviderName;
                    //all the other types
                    //if (providerName.Equals("Ingres.Client", StringComparison.OrdinalIgnoreCase))
                    //{
                    //    schemaReader = new IngresSchemaReader(connectionString, providerName);
                    //}
                    //else if (providerName.Equals("iAnyWhere.Data.SQLAnyWhere", StringComparison.OrdinalIgnoreCase))
                    //{
                    //    schemaReader = new SybaseAsaSchemaReader(connectionString, providerName);
                    //}
                    //else if (providerName.Equals("Sybase.Data.AseClient", StringComparison.OrdinalIgnoreCase))
                    //{
                    //    schemaReader = new SybaseAseSchemaReader(connectionString, providerName);
                    //}
                    //else if (providerName.Equals("iAnyWhere.Data.UltraLite", StringComparison.OrdinalIgnoreCase))
                    //{
                    //    schemaReader = new SybaseUltraLiteSchemaReader(connectionString, providerName);
                    //}
                    //else if (providerName.Equals("System.Data.OleDb", StringComparison.OrdinalIgnoreCase))
                    //{
                    //    schemaReader = new OleDbSchemaReader(connectionString, providerName);
                    //}
                    //else if (providerName.Equals("System.Data.VistaDB", StringComparison.OrdinalIgnoreCase))
                    //{
                    //    schemaReader = new VistaDbSchemaReader(connectionString, providerName);
                    //}
                    //else if (providerName.Equals("IBM.Data.DB2.iSeries", StringComparison.OrdinalIgnoreCase))
                    //{
                    //    schemaReader = new Db2ISeriesSchemaReader(connectionString, providerName);
                    //}
                    //else if (providerName.Equals("FirebirdSql.Data.FirebirdClient", StringComparison.OrdinalIgnoreCase))
                    //{
                    //    schemaReader = new FirebirdSqlSchemaReader(connectionString, providerName);
                    //}

                    break;
            }
            if (schemaReader == null)
            {
            #if !COREFX
                schemaReader = new DbProviderReaderAdapter(schemaParameters);
            #else
                schemaReader = new ReaderAdapter(schemaParameters);
            #endif
            }
            return schemaReader;
        }
Esempio n. 8
0
        public void NAdapterTest()
        {
            IDatabaseAdapter adapter = new OracleAdapter();

            Assert.AreEqual("oracle", adapter.ProviderName);
        }