public List <MensajeDetallado> GetAllTrafico() { List <MensajeDetallado> mensajes = new List <MensajeDetallado>(); try { using (StreamReader reader = new StreamReader(archivoTrafico)) { string text = null; do { string[] textArray = text.Trim().Split('|'); MensajeDetallado m = new MensajeDetallado() { NroSerie = Convert.ToInt32(textArray[0]), Fecha = textArray[1], Tipo = textArray[2], Valor = Convert.ToInt32(textArray[3]), Estado = textArray[4] }; mensajes.Add(m); } while (text != null); } } catch (IOException ex) { } return(mensajes); }
public void SaveTrafico(MensajeDetallado m) { try { using (StreamWriter writer = new StreamWriter(archivoTrafico, true)) { string texto = JsonConvert.SerializeObject(m); writer.WriteLine(texto.ToString()); writer.Flush(); } }catch (IOException ex) { } }
public void Ejecutar() { string tipo, mensajeCliente, estado; string fechaServer, fechaCliente; int valor, nroMedidor; DateTime fecha1; DateTime fecha2; mensajeCliente = server.Leer(); Console.WriteLine(mensajeCliente); fechaServer = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss"); //Se debe validar que el medidor este en el sistema string[] validacion = mensajeCliente.Split('|'); Boolean existe = true; foreach (int element in medidores) { if (element == Convert.ToInt32(validacion[1])) { existe = true; break; } else { existe = false; } } if (existe == false) { server.Escribir(fechaServer + '|' + validacion[1] + '|' + "ERROR"); server.CerrarConexion(); return; } else { server.Escribir(fechaServer + "|WAIT"); //DateTime fecha = Convert.ToDateTime(fechaServer); fecha1 = DateTime.Now; mensajeCliente = server.Leer(); Console.WriteLine(mensajeCliente); fecha2 = DateTime.Now; string[] textArray = mensajeCliente.Split('|'); nroMedidor = Convert.ToInt32(textArray[0]); fechaCliente = textArray[1]; //DateTime fechaCliente = DateTime.Now; tipo = textArray[2]; valor = Convert.ToInt32(textArray[3]); estado = textArray[4]; //TimeSpan diff = fechaCliente.Subtract(fecha); //if (diff.Minutes < 30) //{ /*for(int i = 0; i < textArray.Length; i++) * { * Console.WriteLine(textArray[i]); * }*/ //nroMedidor = Int32.Parse(textArray[0]); if (fecha1.Subtract(fecha2).Minutes > 30) { server.CerrarConexion(); } else { MensajeDetallado m = new MensajeDetallado() { NroSerie = nroMedidor, Fecha = fechaCliente, Tipo = tipo, Valor = Convert.ToInt32(valor), Estado = estado }; if (tipo.Contains("consumo")) { lock (dal) { dal.SaveConsumo(m); } server.Escribir(nroMedidor.ToString() + '|' + "OK"); server.CerrarConexion(); } else if (tipo.Contains("trafico")) { lock (dal) { dal.SaveTrafico(m); } server.Escribir(nroMedidor.ToString() + '|' + "OK"); server.CerrarConexion(); } } //} //else //{ // server.CerrarConexion(); //} } }