public List<MonitoreoDispositivos> parseaTramaAlarmaDispositivo(AlarmasObj alarma) { List<MonitoreoDispositivos> alarmas = new List<MonitoreoDispositivos>(); MonitoreoDispositivos monitoreoC = new MonitoreoDispositivos(); MonitoreoDispositivos monitoreoS = new MonitoreoDispositivos(); int[] conf = new int[alarma.estado_suministro.Length]; int[] sum = new int[alarma.estado_dispositivo.Length]; /* En este for se saca el estado de cada uno de los dispositivos referenciados en el * manual en el capitulo 9 */ for (int i = 0; i < alarma.estado_suministro.Length-1; i++) { conf[i] = int.Parse( alarma.estado_suministro[i].ToString()); } /*Suministros*/ for (int i = 0; i < alarma.estado_dispositivo.Length - 1; i++) { sum[i] = int.Parse(alarma.estado_dispositivo[i].ToString()); } monitoreoC.id_atm = terminal.id_atm; monitoreoC.estado_lectora = conf[3].ToString();// En esta posición se encuentra el estado de lectora monitoreoC.estado_dispensador = conf[4].ToString(); monitoreoC.estado_impresora = conf[6].ToString(); monitoreoC.estado_impresora_jrnl = conf[7].ToString(); monitoreoC.estado_encriptora = conf[11].ToString(); monitoreoC.estado_gaveta1 = conf[15].ToString(); monitoreoC.estado_gaveta2 = conf[16].ToString(); monitoreoC.estado_gaveta3 = conf[17].ToString(); monitoreoC.estado_gaveta4 = conf[18].ToString(); monitoreoC.estado_gaveta5 = "0"; monitoreoC.tipo_estado = "C"; /*Ver estados severidad en pagina 445 NDC tabla 9-13*/ monitoreoS.id_atm = terminal.id_atm; monitoreoS.estado_lectora = sum[3].ToString();// En esta posición se encuentra el estado de lectora monitoreoS.estado_dispensador = sum[4].ToString(); monitoreoS.estado_impresora = sum[6].ToString(); monitoreoS.estado_impresora_jrnl = sum[7].ToString(); monitoreoS.estado_encriptora = "0"; monitoreoS.estado_gaveta1 = sum[15].ToString(); monitoreoS.estado_gaveta2 = sum[16].ToString(); monitoreoS.estado_gaveta3 = sum[17].ToString(); monitoreoS.estado_gaveta4 = sum[18].ToString(); monitoreoS.estado_gaveta5 = "0"; monitoreoS.tipo_estado = "S"; /*Ver estados en pagina 454 NDC tabla 9-16*/ alarmas.Add(monitoreoC); alarmas.Add(monitoreoS); return alarmas; }
public List<AlarmasObj> control_buscar_alarma_atm(AlarmasObj alarma) { conBdd.abrir_conexion_base(); List<AlarmasObj> alarmas = new List<AlarmasObj>(); try { alarmas = conBdd.obtener_alarma(alarma); } catch (Exception e) { logSistema.escritura_archivo_string(e.Message); } finally { conBdd.cerrar_conexion_base(); } return alarmas; }
public List<AlarmasObj> obtener_alarma_atm(AlarmasObj alarma) { return controlUsr.control_buscar_alarma_atm(alarma); }
/* Metodo para procesar las tramas de alarmas del cajero automatico*/ public AlarmasObj parseaTramaIngreso(string tramaIng) { AlarmasObj alarma = new AlarmasObj(); alarma.mensaje = tramaIng; alarma.id_atm = terminal.id_atm; string[] campos = tramaIng.Split((char)28);// es el FS caracter 28 alarma.id_mensaje = campos[0]; alarma.fecha_registro = System.DateTime.Now; try { /*PARA MENSAJES NO SOLICITADOS DE ALARMAS*/ if (campos[0].Equals("12")) { alarma.tipo_alarma = "A"; try { //obtenemos el tipo de dispositivo alarma.id_tipo_dispositivo = campos[3].Substring(0, 1); if (alarma.id_tipo_dispositivo.Equals("P")) { alarma.estado_dispositivo = campos[3].Substring(1, 1);// estado de nivel P if (alarma.estado_dispositivo.Equals("2")) { alarma.error_severidad = campos[3].Substring(2, campos[3].Length - 2); // datos adicionales // si es 2 llega el 0 modo supervisor exit, 1 modo supervisor ingreso } else { alarma.estado_suministro = campos[3].Substring(2, campos[3].Length - 2); // aca obtiene datos de los dispositivos } } else { alarma.estado_dispositivo = campos[3].Substring(1, campos[3].Length-1); alarma.error_severidad = campos[4]; alarma.estado_diagnostico = campos[5]; alarma.estado_suministro = campos[6]; } } catch (IndexOutOfRangeException e) { errorNDC.escritura_archivo_string(e.Message); errorNDC.escritura_archivo_strSplit(campos); } } /*PARA MENSAJES SOLICITADOS DE ALARMAS*/ else if (campos[0].Equals("22")) { /*CODIGO TIPO 8 SIGNIFICA QUE ES UNA ALARMA SOLICITADA, CODIGO F SOLICITUD DE CONTADORES Y ESTADOS DE DISPOSITIVOS GENERAL*/ alarma.descriptor = campos[3]; if (campos[3].Equals("8")) { alarma.tipo_alarma = "A"; try { alarma.id_tipo_dispositivo = campos[4].Substring(0, 1); alarma.estado_dispositivo = campos[5].Substring(1, campos[5].Length-1); alarma.error_severidad = campos[6]; alarma.estado_diagnostico = campos[7]; if (campos[8].Length > 8) { alarma.estado_suministro = campos[8].Substring(0,8); } else { alarma.estado_suministro = campos[8]; } } catch (IndexOutOfRangeException e) { errorNDC.escritura_archivo_string(e.Message); errorNDC.escritura_archivo_strSplit(campos); } } /* ESTADOS DE DISPOSITIVOS */ else if(campos[3].Equals("F")){ //alarma.descriptor = campos[3]; if (campos[4].StartsWith("1"))// envio de configuracion de informacion { alarma.id_tipo_dispositivo = "1"; alarma.tipo_alarma = "A"; alarma.estado_suministro = campos[5]; alarma.estado_diagnostico = campos[6]; alarma.estado_dispositivo = campos[7]; } else if (campos[4].StartsWith("2")) { // envio de estado de contadores alarma.id_tipo_dispositivo = "2"; alarma.estado_suministro = campos[4]; } else if (campos[4].StartsWith("7A"))// envio de contadores extendidos { // envio de estado de contadores alarma.id_tipo_dispositivo = "7"; string[] otrosValores = campos[4].Split((char)29);// char 29 GS alarma.estado_suministro = otrosValores[1]; alarma.estado_diagnostico = otrosValores[2]; } } } else if (campos[0].Equals("1"))// comando a terminal { alarma.tipo_comando = campos[3]; } } catch (IndexOutOfRangeException e) { errorNDC.escritura_archivo_string(e.Message); errorNDC.escritura_archivo_strSplit(campos); //alarma = null; } return alarma; }
public void cliente_servicio() { try { sincronico = true; AlarmasObj mensajeEnvioRecep = new AlarmasObj(); this.comadoToATM.setPonerEnServicio(); string datoEnvio = this.comadoToATM.getTramaComandoTerminal(); string datoRespuesta = ""; datoIn("CONEXION NUEVA TERMINAL :" + terminal.codigo); enviarDato = true; while (sincronico) { if (enviarDato) { clienteConectado = true; datoEnvio = comadoToATM.getTramaComandoTerminal(); envio_string(datoEnvio); mensajeEnvioRecep = parseoAlrma.parseaTramaIngreso(datoEnvio.Substring(2, datoEnvio.Length - 2)); mensajeEnvioRecep.envio_recepcion = 0;//cero envio, uno recibo terminalArchivo.escritura_archivo_string(">>>[" + datoEnvio.Length + "] : " + datoEnvio); enviarDato = false; datoIn("[" + terminal.codigo + "]:" + datoEnvio.Substring(2, datoEnvio.Length - 2)); conBdd.insertar_alarmas(mensajeEnvioRecep); datoEnvio = ""; } datoRespuesta = recepcion_de_datos(); if (!string.IsNullOrEmpty(datoRespuesta) && datoRespuesta.Length > 2) { terminalArchivo.escritura_archivo_string("<<<[" + datoRespuesta.Length + "] : " + datoRespuesta); datoResp("[" + terminal.codigo + "]:" + datoRespuesta.Substring(2, datoRespuesta.Length - 2)); mensajeEnvioRecep = parseoAlrma.parseaTramaIngreso(datoRespuesta.Substring(2, datoRespuesta.Length - 2)); mensajeEnvioRecep.envio_recepcion = 1; //cero envio, uno recibo /*Si al momento de inserta devuelve 1 se procede con el envio de la notificacion a los usuarios*/ string [] resultado = conBdd.insertar_alarmas(mensajeEnvioRecep); string enviarStr = resultado[1]; string id_suceso = resultado[0]; int enviar = int.Parse(enviarStr); if (mensajeEnvioRecep.descriptor != null) { if (mensajeEnvioRecep.descriptor.Equals("F")) { if (mensajeEnvioRecep.id_tipo_dispositivo.Equals("1")) { List<MonitoreoDispositivos> mts = parseoAlrma.parseaTramaAlarmaDispositivo(mensajeEnvioRecep); foreach (MonitoreoDispositivos tmp in mts) { conBdd.insertar_actualizar_monitoreo_dispositivos(tmp); } } } } else if(mensajeEnvioRecep.id_tipo_dispositivo != null){ if (mensajeEnvioRecep.id_tipo_dispositivo.Equals("P")) { /*con estado 2 indica si entro o no a modo supervisor*/ if (mensajeEnvioRecep.estado_dispositivo.Equals("2")) { terminal.modoSupervisor = mensajeEnvioRecep.error_severidad == "1"; conBdd.actualizar_terminal(terminal); } } } if (enviar == 1) { mensajeEnvioRecep.id_alarma = int.Parse(id_suceso); if (mensajeEnvioRecep.error_severidad == null) { mensajeEnvioRecep.error_severidad = "99"; } DetalleDescripcionObj detalleDes = conBdd.obtener_detalle_por_alarma_terminal(mensajeEnvioRecep); //string mensaje = conBdd.obtener_descripcion_error(int.Parse(mensajeEnvioRecep.error_severidad), mensajeEnvioRecep.id_tipo_dispositivo); detalleDes = parseoAlrma.procesamientoDescripcion(detalleDes); string mensaje = detalleDes.detalle_descripcion; if (string.IsNullOrEmpty(mensaje)) { mensaje = "Sin detalle, por favor consulte con el personal tecnico "; } List<UsuarioObj> sendUsuario = new List<UsuarioObj>(); sendUsuario = conBdd.obtener_usuario_por_terminal(terminal); mensaje += " Cajero :" + terminal.codigo; notificacion.enviarNotificacionUsuario(sendUsuario, mensaje, id_suceso); } datoRespuesta = ""; } } }catch (SocketException ex) { error.escritura_archivo_string(ex.StackTrace); //mensaje_error_sistema(ex.Message, Color.Red); //mensaje_error_sistema(ex.StackTrace,Color.Red); sincronico = false; clienteConectado = false; terminal.conexion = false; conBdd.actualizar_terminal(terminal); }catch (ErrorConexionTerminal ex) { //mensaje_error_sistema(ex.Message, Color.Green); sincronico = false; clienteConectado = false; terminal.conexion = false; error.escritura_archivo_string(ex.Message); conBdd.actualizar_terminal(terminal); } catch (Exception ex) { error.escritura_archivo_string(ex.StackTrace); //mensaje_error_sistema(ex.Message, Color.Red); //mensaje_error_sistema(ex.StackTrace,Color.Red); sincronico = false; clienteConectado = false; terminal.conexion = false; conBdd.actualizar_terminal(terminal); }finally { cerrar_conexion(); } }
public List<AlarmasObj> obtener_alarma(AlarmasObj alarma) { SqlCommand cmd; cmd = new SqlCommand("obtener_alarma_sp", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@id_alarma", alarma.id_alarma); cmd.Parameters.AddWithValue("@id_atm", alarma.id_atm); List<AlarmasObj> lista = new List<AlarmasObj>(); try { SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable tb = new DataTable("lsAlarma"); da.Fill(tb); for (int i = 0; i < tb.Rows.Count; i++) { AlarmasObj alarmatmp = new AlarmasObj(); alarmatmp.id_alarma = int.Parse(tb.Rows[i][0].ToString()); alarmatmp.mensaje = tb.Rows[i][1].ToString(); alarmatmp.id_atm = int.Parse(tb.Rows[i][2].ToString()); alarmatmp.fecha_registro = DateTime.Parse(tb.Rows[i][3].ToString()); alarmatmp.envio_recepcion = int.Parse(tb.Rows[i][4].ToString()); lista.Add(alarmatmp); } return lista; } catch (IndexOutOfRangeException ex) { logs.escritura_archivo_string(ex.Message); throw new ExpObtenerRegistro(MensajeSistema.reg_no_existe); } catch (ArgumentNullException ex) { logs.escritura_archivo_string(ex.Message); throw new ExpObtenerRegistro(MensajeSistema.reg_no_existe); } catch (Exception ex) { logs.escritura_archivo_string(ex.Message); throw new Exception(MensajeSistema.error_Conexion); } }
public void insertar_alarmas(AlarmasObj alarmas) { SqlCommand cmd = new SqlCommand("insertar_alarmas_sp", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@mensaje_alarma", alarmas.mensaje); //cmd.Parameters.AddWithValue("@fecha_registro", alarmas.fecha_registro); cmd.Parameters.AddWithValue("@id_atm", alarmas.id_atm); cmd.Parameters.AddWithValue("@envioRecepcion", alarmas.envio_recepcion); try { cmd.ExecuteNonQuery(); } catch (ArgumentException ex) { logs.escritura_archivo_string(ex.Message); throw new ExInsertarRegistro(MensajeSistema.reg_no_existe); } catch (InvalidOperationException ex) { logs.escritura_archivo_string(ex.Message); throw new ExConexionBase(MensajeSistema.error_Conexion); } }
public void cliente_servicio() { try { sincronico = true; //conBdd.abrir_conexion_base(); AlarmasObj mensajeEnvioRecep = new AlarmasObj(); mensajeEnvioRecep.id_atm = terminal.id_atm; this.comadoToATM.setPonerEnServicio(); string datoEnvio = this.comadoToATM.getTramaComandoTerminal(); string datoRespuesta = ""; //envio_string(datoEnvio); datoIn("CONEXION NUEVA TERMINAL :" + terminal.codigo); enviarDato = true; while (sincronico) { //verificarConexion(); if (enviarDato) { clienteConectado = true; datoEnvio = comadoToATM.getTramaComandoTerminal(); envio_string(datoEnvio); mensajeEnvioRecep.fecha_registro = System.DateTime.Now; mensajeEnvioRecep.envio_recepcion = 0; //cero envio, uno recibo terminalArchivo.escritura_archivo_string(">>>[" + datoEnvio.Length + "] : " + datoEnvio); enviarDato = false; datoIn(datoEnvio.Substring(2,datoEnvio.Length-2)); mensajeEnvioRecep.mensaje = datoEnvio.Substring(2, datoEnvio.Length - 2); conBdd.insertar_alarmas(mensajeEnvioRecep); datoEnvio = ""; } datoRespuesta = recepcion_de_datos(); if (!string.IsNullOrEmpty(datoRespuesta) && datoRespuesta.Length > 2) { terminalArchivo.escritura_archivo_string("<<<[" + datoRespuesta.Length + "] : " + datoRespuesta); datoResp(datoRespuesta.Substring(2, datoRespuesta.Length - 2)); mensajeEnvioRecep.mensaje = datoRespuesta.Substring(2, datoRespuesta.Length - 2); mensajeEnvioRecep.fecha_registro = System.DateTime.Now; mensajeEnvioRecep.envio_recepcion = 1; //cero envio, uno recibo conBdd.insertar_alarmas(mensajeEnvioRecep); datoRespuesta = ""; } /*else { comadoNDC.setSolicitarInformacionConfiguracion(); envio_string(comadoNDC.getTramaComandoTerminal() + "");// Envio para verifficar si esta conectado el terminal }*/ } }catch (SocketException ex) { error.escritura_archivo_string(ex.StackTrace); mensaje_error_sistema(ex.Message, Color.Red); mensaje_error_sistema(ex.StackTrace,Color.Red); sincronico = false; clienteConectado = false; }catch (ErrorConexionTerminal ex) { mensaje_error_sistema(ex.Message, Color.Green); sincronico = false; clienteConectado = false; } catch (Exception ex) { error.escritura_archivo_string(ex.StackTrace); mensaje_error_sistema(ex.Message, Color.Red); mensaje_error_sistema(ex.StackTrace,Color.Red); sincronico = false; clienteConectado = false; }finally { cerrar_conexion(); } }
public string[] insertar_alarmas(AlarmasObj alarmas) { SqlCommand cmd = new SqlCommand("insertar_alarmas_sp", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@mensaje_alarma", alarmas.mensaje); //cmd.Parameters.AddWithValue("@fecha_registro", alarmas.fecha_registro); cmd.Parameters.AddWithValue("@id_atm", alarmas.id_atm); cmd.Parameters.AddWithValue("@envioRecepcion", alarmas.envio_recepcion); if (alarmas.id_mensaje == null) { cmd.Parameters.AddWithValue("@idMensaje", DBNull.Value); } else { cmd.Parameters.AddWithValue("@idMensaje", alarmas.id_mensaje); } if (alarmas.id_tipo_dispositivo == null) { cmd.Parameters.AddWithValue("@idTipoDispositivo", DBNull.Value); } else { cmd.Parameters.AddWithValue("@idTipoDispositivo", alarmas.id_tipo_dispositivo); } if (alarmas.estado_dispositivo == null) { cmd.Parameters.AddWithValue("@estadoDispositivo", DBNull.Value); } else { cmd.Parameters.AddWithValue("@estadoDispositivo", alarmas.estado_dispositivo); } if (alarmas.error_severidad == null) { cmd.Parameters.AddWithValue("@errorServeridad", DBNull.Value); } else { cmd.Parameters.AddWithValue("@errorServeridad", alarmas.error_severidad); } if (alarmas.estado_diagnostico == null) { cmd.Parameters.AddWithValue("@estadoDiagnostico", DBNull.Value); } else { cmd.Parameters.AddWithValue("@estadoDiagnostico", alarmas.estado_diagnostico); } if (alarmas.estado_suministro == null) { cmd.Parameters.AddWithValue("@estadoSuministro", DBNull.Value); } else { cmd.Parameters.AddWithValue("@estadoSuministro", alarmas.estado_suministro); } if (alarmas.tipo_comando == null) { cmd.Parameters.AddWithValue("@tipoComando", DBNull.Value); }else{ cmd.Parameters.AddWithValue("@tipoComando", alarmas.tipo_comando); } if (alarmas.tipo_alarma == null) { cmd.Parameters.AddWithValue("@tipoAlarma", DBNull.Value); } else { cmd.Parameters.AddWithValue("@tipoAlarma", alarmas.tipo_alarma); } if (alarmas.descriptor == null) { cmd.Parameters.AddWithValue("@descriptor", DBNull.Value); } else { cmd.Parameters.AddWithValue("@descriptor", alarmas.descriptor); } SqlParameter envioNotificacion = new SqlParameter("@envio","sin valor"); envioNotificacion.Direction = ParameterDirection.Output; cmd.Parameters.Add(envioNotificacion); SqlParameter id_alarma = new SqlParameter("@id_alarma", 0); id_alarma.Direction = ParameterDirection.Output; //envioNotificacion.Value = "0:sinValor"; cmd.Parameters.Add(id_alarma); try { cmd.ExecuteNonQuery(); string id_ = cmd.Parameters["@id_alarma"].Value.ToString(); string envio_ = cmd.Parameters["@envio"].Value.ToString(); string [] datos = {id_,envio_}; return datos; } catch (ArgumentException ex) { logs.escritura_archivo_string(ex.Message); throw new ExInsertarRegistro(MensajeSistema.reg_no_existe); } catch (InvalidOperationException ex) { logs.escritura_archivo_string(ex.Message); throw new ExConexionBase(MensajeSistema.error_Conexion); } }
public DetalleDescripcionObj obtener_detalle_por_alarma_terminal(AlarmasObj alarma) { SqlCommand cmd = new SqlCommand("obtener_resumen_alerta_terminal_sp", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@id_suceso", alarma.id_alarma); DetalleDescripcionObj detalle = new DetalleDescripcionObj(); try { SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable tb = new DataTable("detalles"); da.Fill(tb); for (int i = 0; i < tb.Rows.Count; i++) { detalle.descripcion_mensaje = tb.Rows[i][0].ToString(); //detalle.mensaje_ndc = tb.Rows[i][1].ToString(); //detalle.mensaje_ndc = tb.Rows[i][1].ToString().Replace(char)28,(char)); //detalle.mensaje_ndc = ""; detalle.fecha_registro = DateTime.Parse(tb.Rows[i][2].ToString()); detalle.tipo_estado = tb.Rows[i][3].ToString(); detalle.tipo_mensaje = tb.Rows[i][4].ToString().Replace((char)0, (char)94).Replace((char)28, (char)127).Replace((char)29, (char)128); detalle.tipo_dispositivo = tb.Rows[i][5].ToString(); } return detalle; } catch (IndexOutOfRangeException ex) { logs.escritura_archivo_string(ex.Message + "\t" + ex.StackTrace); //logs.cerrar_archivo(); throw new ExpObtenerRegistro(MensajeSistema.reg_no_existe); } catch (ArgumentNullException ex) { logs.escritura_archivo_string(ex.Message); //logs.cerrar_archivo(); throw new ExpObtenerRegistro(MensajeSistema.reg_no_existe); } catch (Exception ex) { logs.escritura_archivo_string(ex.Message); //logs.cerrar_archivo(); throw new Exception(MensajeSistema.reg_no_existe); } }