コード例 #1
0
        public static List <CentralLog> GetAll(string centralId)
        {
            List <CentralLog> logs = new List <CentralLog>();

            using (MySqlConnection connection = new MySqlConnection(DbAccess.Instance.ConnectionString))
            {
                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection  = connection;
                cmd.CommandText = "SELECT * FROM central_log WHERE central_ID = @IdCentral ORDER BY fecha DESC LIMIT 20";
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@IdCentral", centralId);

                connection.Open();

                using (MySqlDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        int id = Convert.ToInt32(reader["central_log_ID"]);

                        CentralLog log = new CentralLog(CentralMonitoreo.Get(reader["central_ID"].ToString()), CentralLogTipo.Get((ECentralLogTipo)Convert.ToInt32(reader["central_log_tipo_ID"])));
                        log.LogId = id;
                        log.Fecha = Convert.ToDateTime(reader["fecha"]);

                        // Agrego el log a la lista de retorno
                        logs.Add(log);
                    }
                }
            }

            return(logs);
        }
コード例 #2
0
        /*
         * Obtiene el log más reciente
         */
        public static CentralLog GetLast(string centralId)
        {
            CentralLog log = null;

            using (MySqlConnection connection = new MySqlConnection(DbAccess.Instance.ConnectionString))
            {
                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection  = connection;
                cmd.CommandText = "SELECT * FROM central_log WHERE central_ID = @IdCentral ORDER BY fecha DESC LIMIT 1";
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@IdCentral", centralId);

                connection.Open();

                using (MySqlDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        log       = new CentralLog(CentralMonitoreo.Get(reader["central_ID"].ToString()), CentralLogTipo.Get((ECentralLogTipo)Convert.ToInt32(reader["central_log_tipo_ID"])));
                        log.LogId = Convert.ToInt32(reader["central_log_ID"]);
                        log.Fecha = Convert.ToDateTime(reader["fecha"]);
                    }
                    else
                    {
                        return(null);
                    }
                }
            }

            return(log);
        }
コード例 #3
0
        /**
         * Devuelve el socketId de una central conectada.
         */
        public string ObtenerSocketId(string centralId, string contraseña)
        {
            CentralMonitoreo c = CentralMonitoreo.Get(centralId);

            if (c == null || !c.Contraseña.Equals(contraseña))
            {
                return(null);
            }

            // Si se puede identificar como central, devuelve el socketId si hay una conexión, o null si la central no está conectada
            KeyValuePair <string, CentralMonitoreo> conexion = centrales.Where(s => s.Value.CentralID == c.CentralID).FirstOrDefault();

            return(conexion.Key);
        }
コード例 #4
0
        /**
         * Conecta una central y la agrega al diccionario.
         */
        public bool ConectarCentral(string socketId, string centralId, string contraseña)
        {
            CentralMonitoreo c = CentralMonitoreo.Get(centralId);

            if (c == null || !c.Contraseña.Equals(contraseña))
            {
                return(false);
            }

            CentralLog log = new CentralLog(c, CentralLogTipo.Get(ECentralLogTipo.Conectado));

            log.Save();

            centrales[socketId] = c;

            return(true);
        }