Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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.");
        }
        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.");
        }