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);
            }

            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 {}
    }
Пример #2
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);
        }
        public void GetDataSource()
        {
            try
            {
                var    command = (CommandJson) new DataContractJsonSerializer(typeof(CommandJson)).ReadObject(HttpContext.Request.Body);
                Result result  = new Result();

                if (command.Database == "MS SQL")
                {
                    result = MSSQLAdapter.Process(command);
                }
                //if (command.Database == "PostgreSQL") result = PostgreSQLAdapter.Process(command);

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

                serializer.WriteObject(HttpContext.Response.Body, result);


                HttpContext.Response.Body.Flush();
            }
            catch { }
        }
Пример #4
0
        public void GetDataSource()
        {
            try
            {
                var    command = (CommandJson) new DataContractJsonSerializer(typeof(CommandJson)).ReadObject(HttpContext.Request.BodyReader.AsStream());
                Result result  = new Result();

                if (command.Database == "MS SQL")
                {
                    result = MSSQLAdapter.Process(command);
                }
                //if (command.Database == "PostgreSQL") result = PostgreSQLAdapter.Process(command);

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

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

                HttpContext.Response.Body.Flush();
                HttpContext.Response.Clear();
            }
            catch { }
        }
Пример #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);
        }
Пример #7
0
 public MSSQLAdapterProperty()
 {
     pms["DbAdapter"] = new MSSQLAdapter();
 }