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); }
/* * 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); }
/** * 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); }
/** * 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); }