public Gateway(IGatewayConnectionPort connectionPort, IMySensorsRepository db = null, IMySensorsMessagesRepository hisotryDb = null) { this.db = db; this.hisotryDb = hisotryDb; nodes = db?.GetNodes() ?? new List <Node>(); gatewayAliveChecker = new GatewayAliveChecker(this); this.connectionPort = connectionPort; this.connectionPort.OnDataReceived += RecieveMessage; this.connectionPort.OnDisconnected += OnConnectionPortDisconnected; this.connectionPort.OnConnected += TryToCommunicateWithGateway; this.connectionPort.OnLogError += LogError; this.connectionPort.OnLogInfo += LogInfo; this.connectionPort.OnLogMessage += LogMessage; }
public Gateway(IGatewayConnectionPort connectionPort, IMySensorsRepository db = null, IMySensorsMessagesRepository hisotryDb = null) { this.db = db; this.hisotryDb = hisotryDb; nodes = db?.GetNodes() ?? new List<Node>(); gatewayAliveChecker = new GatewayAliveChecker(this); this.connectionPort = connectionPort; this.connectionPort.OnDataReceived += RecieveMessage; this.connectionPort.OnDisconnected += OnConnectionPortDisconnected; this.connectionPort.OnConnected += TryToCommunicateWithGateway; this.connectionPort.OnLogError += LogError; this.connectionPort.OnLogInfo += LogInfo; this.connectionPort.OnLogMessage += LogMessage; }
public static void ConnectToDB() { if (!dataBaseConfig.Enable) { nodesDb = null; nodesDataDb = null; mySensorsDb = null; mySensorsMessagesDb = null; usersDb = null; return; } logs.AddSystemInfo("Connecting to database... "); //db config if (dataBaseConfig.UseInternalDb) { NodesDbContext nodesDbContext = (NodesDbContext)services.GetService(typeof(NodesDbContext)); NodesDataDbContext nodesDataDbContext = (NodesDataDbContext)services.GetService(typeof(NodesDataDbContext)); MySensorsNodesDbContext mySensorsNodesDbContext = (MySensorsNodesDbContext)services.GetService(typeof(MySensorsNodesDbContext)); MySensorsMessagesDbContext mySensorsMessagesDbContext = (MySensorsMessagesDbContext)services.GetService(typeof(MySensorsMessagesDbContext)); UsersDbContext usersDbContext = (UsersDbContext)services.GetService(typeof(UsersDbContext)); nodesDb = new NodesRepositoryEf(nodesDbContext); nodesDataDb = new NodesDataRepositoryEf(nodesDataDbContext); mySensorsDb = new MySensorsRepositoryEf(mySensorsNodesDbContext); mySensorsMessagesDb = new MySensorsMessagesRepositoryEf(mySensorsMessagesDbContext); usersDb = new UsersRepositoryEf(usersDbContext); } else { if (String.IsNullOrEmpty(dataBaseConfig.ExternalDbConnectionString)) { logs.AddSystemError("Database connection failed. Set ConnectionString in appsettings.json file."); return; } nodesDb = new NodesRepositoryDapper(dataBaseConfig.ExternalDbConnectionString); nodesDataDb = new NodesDataRepositoryDapper(dataBaseConfig.ExternalDbConnectionString); mySensorsDb = new MySensorsRepositoryDapper(dataBaseConfig.ExternalDbConnectionString); mySensorsMessagesDb = new MySensorsMessagesRepositoryDapper(dataBaseConfig.ExternalDbConnectionString); usersDb = new UsersRepositoryDapper(dataBaseConfig.ExternalDbConnectionString); } mySensorsDb.SetWriteInterval(dataBaseConfig.WriteInterval); mySensorsDb.OnLogInfo += logs.AddDataBaseInfo; mySensorsDb.OnLogError += logs.AddDataBaseError; mySensorsMessagesDb.SetWriteInterval(dataBaseConfig.WriteInterval); mySensorsMessagesDb.OnLogInfo += logs.AddDataBaseInfo; mySensorsMessagesDb.OnLogError += logs.AddDataBaseError; nodesDb.SetWriteInterval(dataBaseConfig.WriteInterval); nodesDb.OnLogInfo += logs.AddDataBaseInfo; nodesDb.OnLogError += logs.AddDataBaseError; nodesDataDb.SetWriteInterval(dataBaseConfig.WriteInterval); nodesDataDb.OnLogInfo += logs.AddDataBaseInfo; nodesDataDb.OnLogError += logs.AddDataBaseError; logs.AddSystemInfo("Database connected."); }