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"]); }
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); }
//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; }
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"]); }
public ScriptDataPoint(DataPointConfig config) { Config = config; Engine = new Engine(); this.DebugMessages = config.DebugMessages; this.Driver = config.Driver; this.Script = config.Script; }
public MsSqlDataPoint(DataPointConfig config, ILogger logger) { Config = config; this.logger = logger; this.DebugMessages = config.DebugMessages; this.Driver = config.Driver; this.Script = config.Script; }
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); }
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"]); }
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)); }
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"]); }
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"]); }