public NodesEngine(INodesRepository nodesDb = null, INodesDataRepository dataDb = null) { NodesEngine.nodesEngine = this; this.nodesDb = nodesDb; this.dataDb = dataDb; lastUpdateTime = DateTime.Now; activityTimer.Elapsed += UpdateShowActivity; activityTimer.Interval = SHOW_ACTIVITY_INTERVAL; activityTimer.Start(); if (nodesDb != null) { GetNodesFromRepository(); GetLinksFromRepository(); } UpdateNodesLoop(); }
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."); }