Ejemplo n.º 1
0
        public void Execute_DataPoint_sp_test01()
        {
            // prepare
            var dpConfig = new DataPointConfig[] {
                new DataPointConfig {
                    Name   = "[dbo].[sp_test01]",
                    Driver = "mssql",
                    Config = "Server=localhost;Database=QuickFlowDb;User Id=sa;Password=Aguia3220;",
                    Params = (new DataPointParamConfig[] {
                        new DataPointParamConfig {
                            Name = "@p1",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.FromOTM
                        },
                        new DataPointParamConfig {
                            Name = "@p2",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.ToOTM
                        }
                    }).ToList()
                }
            };

            var inParams = new Dictionary <string, object>();

            inParams["@p1"] = 2;
            inParams["@p2"] = 0;

            var loggerMock = new Mock <ILogger>();
            var dpSpTest01 = DataPointFactory.CreateDataPoints(dpConfig, loggerMock.Object)["[dbo].[sp_test01]"];

            var outParams = dpSpTest01.Execute(inParams);

            Assert.Equal(4, outParams["@p2"]);
        }
Ejemplo n.º 2
0
        public void CreateDatapoint(DataPointConfig dataPoint)
        {
            var configFolder = GetConfigFolder();
            var fileName     = dataPoint.ContextName + ".json";
            var configPath   = Path.Combine(configFolder, fileName);

            var configString = File.ReadAllText(configPath);
            var config       = JsonSerializer.Deserialize <OtmContextConfig>(configString);
            var index        = config.DataPoints.Where(e => e.Id == dataPoint.Id).ToList();

            if (index.Count() > 0)
            {
                foreach (var dp in config.DataPoints)
                {
                    if (dp.Id == dataPoint.Id)
                    {
                        dp.Name          = dataPoint.Name;
                        dp.Config        = dataPoint.Config;
                        dp.DebugMessages = dataPoint.DebugMessages;
                        dp.Params        = dataPoint.Params;
                    }
                }
            }
            else
            {
                dataPoint.Id = Guid.NewGuid();
                config.DataPoints.Add(dataPoint);
            }

            var configJson = JsonSerializer.Serialize <OtmContextConfig>(config);

            File.WriteAllText(configPath, configJson);
        }
Ejemplo n.º 3
0
        //private static readonly ILogger Logger = LoggerFactory.GetCurrentClassLogger();

        public PgDataPoint(DataPointConfig config)
        {
            Config             = config;
            this.DebugMessages = config.DebugMessages;
            this.Driver        = config.Driver;
            this.Script        = config.Script;
        }
Ejemplo n.º 4
0
        public void Execute_DataPoint_sp_test01()
        {
            // prepare
            var dpConfig = new DataPointConfig[] {
                new DataPointConfig {
                    Name   = "sp_test01",
                    Driver = "pg",
                    Config = "Host=localhost;Database=otm;Username=otm;Password=otm",
                    Params = (new DataPointParamConfig[] {
                        new DataPointParamConfig {
                            Name = "p1",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.FromOTM
                        },
                        new DataPointParamConfig {
                            Name = "p2",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.ToOTM
                        }
                    }).ToList()
                }
            };

            var inParams = new Dictionary <string, object>();

            inParams["p1"] = 2;
            inParams["p2"] = 0;

            var loggerMock = new Mock <ILogger>();
            var dpSpTest01 = DataPointFactory.CreateDataPoints(dpConfig, loggerMock.Object)["sp_test01"];

            var outParams = dpSpTest01.Execute(inParams);

            Assert.Equal(4, outParams["p2"]);
        }
Ejemplo n.º 5
0
 public ScriptDataPoint(DataPointConfig config)
 {
     Config             = config;
     Engine             = new Engine();
     this.DebugMessages = config.DebugMessages;
     this.Driver        = config.Driver;
     this.Script        = config.Script;
 }
Ejemplo n.º 6
0
 public MsSqlDataPoint(DataPointConfig config, ILogger logger)
 {
     Config             = config;
     this.logger        = logger;
     this.DebugMessages = config.DebugMessages;
     this.Driver        = config.Driver;
     this.Script        = config.Script;
 }
Ejemplo n.º 7
0
        private static IDataPoint CreateDataPoint(DataPointConfig dpConfig, ILogger logger)
        {
            // todo datapoint deve ter um nome
            if (string.IsNullOrWhiteSpace(dpConfig.Name))
            {
                var ex = new Exception($"Invalid DataPoint name in config. Name:{dpConfig.Name}");
                ex.Data.Add("field", "Name");
                throw ex;
            }

            if (dpConfig.Params == null || dpConfig.Params.Count <= 0)
            {
                var ex = new Exception($"DataPoint must have at least one parameter. DataPoint:{dpConfig.Name}");
                ex.Data.Add("field", "Params");
                throw ex;
            }

            foreach (var param in dpConfig.Params)
            {
                // se é do tipo string precisa ter o comprimento
                if (param.TypeCode == TypeCode.String && (param.Length ?? 0) == 0)
                {
                    var ex = new Exception($"DataPoint Param of type String must have Lenght. DataPoint:{dpConfig.Name} Param:{param.Name}");
                    ex.Data.Add("field", "Length");
                    throw ex;
                }
            }

            //var staticParam = dpConfig.Params.Where(x => x.Mode == Modes.Static);

            IDataPoint datapoint;

            logger.LogInformation($"DataPoint {dpConfig.Name}: Creating");
            switch (dpConfig.Driver)
            {
            case "pg":
                datapoint = new PgDataPoint(dpConfig);
                logger.LogInformation($"DataPoint {dpConfig.Name}: Created");
                break;

            case "mssql":
                datapoint = new MsSqlDataPoint(dpConfig, logger);
                logger.LogInformation($"DataPoint {dpConfig.Name}: Created");
                break;

            case "script":
                datapoint = new ScriptDataPoint(dpConfig);
                logger.LogInformation($"DataPoint {dpConfig.Name}: Created");
                break;

            default:
                var ex = new Exception("Invalid DataPointDriver in config. Driver:" + dpConfig.Driver);
                ex.Data.Add("field", "Driver");
                throw ex;
            }

            return(datapoint);
        }
Ejemplo n.º 8
0
        public void InvalidNullParameterList()
        {
            // prepare
            var dpConfig = new DataPointConfig[] {
                new DataPointConfig {
                    Name   = "dp01",
                    Driver = "pg",
                    Config = "",
                    Params = null
                }
            };

            var loggerMock = new Mock <ILogger>();
            var ex         = Record.Exception(() => DataPointFactory.CreateDataPoints(dpConfig, loggerMock.Object));

            Assert.Equal("Params", ex?.Data["field"]);
        }
Ejemplo n.º 9
0
        public IActionResult Post([FromBody] DataPointConfig form)
        {
            var result = new ResultApi();

            try
            {
                ConfigService.CreateDatapoint(form);
                result.result = true;
            }
            catch (Exception e)
            {
                result.result  = false;
                result.message = e.Message;
            }

            return(Ok(result));
        }
Ejemplo n.º 10
0
        public void CreateOdbcDataPoint()
        {
            // prepare
            var dpConfig = new DataPointConfig[] {
                new DataPointConfig {
                    Name   = "dp01",
                    Driver = "pg",
                    Config = "dsn=DB01",
                    Params = (new DataPointParamConfig[] {
                        new DataPointParamConfig {
                            Name = "@p1",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.FromOTM
                        }
                    }).ToList()
                },
                new DataPointConfig {
                    Name   = "dp02",
                    Driver = "pg",
                    Config = "dsn=DB02",
                    Params = (new DataPointParamConfig[] {
                        new DataPointParamConfig {
                            Name = "@p1",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.FromOTM
                        }
                    }).ToList()
                }
            };

            var loggerMock = new Mock <ILogger>();
            var datapoints = DataPointFactory.CreateDataPoints(dpConfig, loggerMock.Object);

            Assert.Equal(2, datapoints.Count);

            Assert.IsType <PgDataPoint>(datapoints["dp01"]);

            Assert.IsType <PgDataPoint>(datapoints["dp02"]);
        }
Ejemplo n.º 11
0
        public void InvalidStringParamWithoutLenght()
        {
            // prepare
            var dpConfig = new DataPointConfig[] {
                new DataPointConfig {
                    Name   = "dp01",
                    Driver = "mssql",
                    Config = "",
                    Params = (new DataPointParamConfig[] {
                        new DataPointParamConfig {
                            Name = "@p1",
                            TypeCode = TypeCode.String,
                            Mode = Modes.FromOTM
                        }
                    }).ToList()
                }
            };

            var loggerMock = new Mock <ILogger>();
            var ex         = Record.Exception(() => DataPointFactory.CreateDataPoints(dpConfig, loggerMock.Object));

            Assert.Equal("Length", ex?.Data["field"]);
        }