/// <summary> /// Permite Iniciar la consulta de usuario /// Creado por: Ludwing Ottoniel Cano fuentes - 05/03/2019 ///</summary> /// <param name="datos">Valores con la info de uusario a consultar</param> /// <returns></returns> public DatosRespuestaConsulta RealizarConsulta(DatosConsulta datos) { DatosRespuestaConsulta respuesta_datos = new DatosRespuestaConsulta(); OracleMethod oracle = new OracleMethod(); //creacion trama string trama = CrearTramaConsulta(datos); //Ingreso trama Metodos MQ_metodos = new Metodos(); string messageID = datos.FECHA + DateTime.Now.ToString("HHmmss") + datos.NIS; string ms_respuesta = ""; bool response = MQ_metodos.PutMessages(trama, messageID, out ms_respuesta); if (response == false) { respuesta_datos.TIP_OPER = Properties.Resources.CodErrorConexion; respuesta_datos.STATUS = ms_respuesta; return(respuesta_datos); } byte[] MessageId; string putID = string.Empty; //Validar crear messageId try { MessageId = Encoding.ASCII.GetBytes(messageID); putID = BitConverter.ToString(MessageId).Replace("-", string.Empty); } catch (Exception) { messageID = datos.FECHA + DateTime.Now.ToString("HHmm") + datos.NIS; MessageId = Encoding.ASCII.GetBytes(messageID); putID = BitConverter.ToString(MessageId).Replace("-", string.Empty); } if (putID.Length > 45) { putID = putID.Substring(0, putID.Length - 3); } //Buscar Trama string get_trama = oracle.ObtenerRespuesta(putID); if (get_trama.Equals(string.Empty)) { respuesta_datos.TIP_OPER = Properties.Resources.CodErrorConexion; respuesta_datos.STATUS = "No fue posible realizar la consulta, intente nuevamente."; return(respuesta_datos); } respuesta_datos = InterpretarTramaConsulta(get_trama, datos.BANCO, Properties.Resources.CodConsulta); if (respuesta_datos.TIP_OPER.Equals(Properties.Resources.CodErrorConexion)) { respuesta_datos.STATUS = "No fue posible realizar la consulta, intente nuevamente."; } return(respuesta_datos); }
/// <summary> /// Permite interpretar la trama obteneida del MQ /// Creado por: Ludwing Ottoniel Cano fuentes - 05/03/2019 ///</summary> /// <param name="trama"></param> /// <param name="banco"></param> /// <param name="operacion"></param> /// <returns></returns> public DatosRespuestaConsulta InterpretarTramaConsulta(string trama, string banco, string operacion) { OracleMethod oracle = new OracleMethod(); Utilidad utilidad = new Utilidad(); List <ParametrosMQConsulta> parametros = oracle.GetParametros(banco, operacion); DatosRespuestaConsulta respuesta = new DatosRespuestaConsulta { TIP_OPER = Properties.Resources.CodErrorConexion }; if (parametros != null) { respuesta = utilidad.InterpretarRespuestaConsulta(parametros, trama); } return(respuesta); }
/// <summary> /// Devuelve el dato que corresponda segun los tipos de parametros para la interpretacion de trama /// Creado por: Ludwing Ottoniel Cano fuentes - 05/03/2019 ///</summary> /// <param name="tipo"></param> /// <param name="trama"></param> /// <returns></returns> public DatosRespuestaConsulta InterpretarRespuestaConsulta(List <ParametrosMQConsulta> tipo, string trama) { DatosRespuestaConsulta dato = new DatosRespuestaConsulta(); string valor = ""; try { for (int i = 0; i < tipo.Count; i++) { switch (tipo[i].OPERACION) { case "STATUS": valor = trama.Substring(0, Int32.Parse(tipo[i].LONGITUD)); trama = trama.Substring(Int32.Parse(tipo[i].LONGITUD)); dato.STATUS = valor; break; case "NOM_TIT_CONT": valor = trama.Substring(0, Int32.Parse(tipo[i].LONGITUD)); trama = trama.Substring(Int32.Parse(tipo[i].LONGITUD)); dato.NOM_TIT_CONT = valor; break; case "DIR_SUMINISTRO": valor = trama.Substring(0, Int32.Parse(tipo[i].LONGITUD)); trama = trama.Substring(Int32.Parse(tipo[i].LONGITUD)); dato.DIR_SUMINISTRO = valor; break; case "USUARIO": valor = trama.Substring(0, Int32.Parse(tipo[i].LONGITUD)); trama = trama.Substring(Int32.Parse(tipo[i].LONGITUD)); dato.USUARIO = valor; break; case "ESTACION": valor = trama.Substring(0, Int32.Parse(tipo[i].LONGITUD)); trama = trama.Substring(Int32.Parse(tipo[i].LONGITUD)); dato.ESTACION = valor; break; case "DEUDA": valor = trama.Substring(0, Int32.Parse(tipo[i].LONGITUD)); trama = trama.Substring(Int32.Parse(tipo[i].LONGITUD)); string decimales = valor.Substring(valor.Length - 2); string entero = Int32.Parse(valor.Substring(0, valor.Length - 2)).ToString(); dato.DEUDA = entero + "." + decimales; break; case "NIS": valor = trama.Substring(0, Int32.Parse(tipo[i].LONGITUD)); trama = trama.Substring(Int32.Parse(tipo[i].LONGITUD)); dato.NIS = valor; break; case "TIP_OPER": valor = trama.Substring(0, Int32.Parse(tipo[i].LONGITUD)); trama = trama.Substring(Int32.Parse(tipo[i].LONGITUD)); dato.TIP_OPER = valor; break; } } } catch (Exception) { dato = new DatosRespuestaConsulta(); dato.TIP_OPER = Properties.Resources.CodErrorConexion; } return(dato); }