예제 #1
0
        public string getResultados(string nroOrden)
        {
            byte   tipoDoc = 0;
            string archivo = "C:\\Basura";

            System.IO.StreamWriter sw = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
            sw.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
            sw.WriteLine("Doc solicitado:" + nroOrden + " Evento:" + DateTime.Now.ToString() + "\r\n");
            sw.Close();
            Resultados rpta = new Resultados();

            try
            {
                string Confidenciales = string.Empty;
                string Pendientes     = string.Empty;
                srLabcoreResultados.WSSolicitudesClient clienteWS = new srLabcoreResultados.WSSolicitudesClient();
                string XMLdocumento        = clienteWS.GetResultPdf(nroOrden);
                System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
                doc.LoadXml(XMLdocumento);
                XmlNode     Raiz      = doc.FirstChild;
                XmlNodeList registros = doc.GetElementsByTagName("ResultadoPdf");
                XmlNodeList paciente  = ((XmlElement)registros[0]).GetElementsByTagName("PACIENTE");

                XmlElement pacienteWRK = (XmlElement)paciente[0];
                string     Nombre      = pacienteWRK.GetAttribute("NOMBRE");
                string     Apellidos   = pacienteWRK.GetAttribute("APELLIDO");
                string     Documento   = pacienteWRK.GetAttribute("DOCUMENTO");

                XmlNodeList orden       = ((XmlElement)registros[0]).GetElementsByTagName("ORDEN");
                XmlElement  ordernWrk   = (XmlElement)orden[0];
                string      nroOrdenwRK = ordernWrk.GetAttribute("NUMERO");
                Confidenciales = ordernWrk.GetAttribute("RESCONFIDENCIALES");
                Pendientes     = ordernWrk.GetAttribute("RESPENDIENTES");

                System.IO.StreamWriter sw1 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                using (sw1)
                {
                    sw1.WriteLine("Recibido Labcore-- Nombre:" + Nombre + "  Apellidos:" + Apellidos + "  Confidenciales:" + Confidenciales + "  Pendientes:" + Pendientes + " Evento:" + DateTime.Now.ToString() + "\r\n");
                    sw1.Close();
                }
                //****************************************** VALIDACION DE NRO DE IMPRESIONES
                using (SqlConnection conexion = new SqlConnection(Properties.Settings.Default.DBConexion))
                {
                    conexion.Open();
                    string        query0    = "SELECT COUNT(NRO_IMP) FROM LABRES_IMP WHERE NRO_ORDEN=" + nroOrdenwRK;
                    SqlCommand    sqlCom0   = new SqlCommand(query0, conexion);
                    SqlDataReader sqlReader = sqlCom0.ExecuteReader();
                    if (sqlReader.HasRows)
                    {
                        sqlReader.Read();
                        if (sqlReader.GetInt32(0) > 3)
                        {
                            rpta.status = "3";
                            rpta.Resultado.Add("Estos Resultados Ya se han Impreso, En mas de 3 Oportunidades.");
                            rpta.Nombre   = "";
                            rpta.Apellido = "";
                            XmlSerializer salidaImp     = new XmlSerializer(rpta.GetType());
                            StringWriter  textWriterImp = new StringWriter();
                            salidaImp.Serialize(textWriterImp, rpta);
                            System.IO.StreamWriter sw4 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                            using (sw4)
                            {
                                sw4.WriteLine("Resultados Impresos en mas de 3 Oportunidades. \r\n");
                                sw4.Close();
                            }
                            return(textWriterImp.ToString());
                        }
                    }
                }
                if (int.Parse(Confidenciales) == 0)
                {
                    if (int.Parse(Pendientes) == 0)
                    {
                        XmlNodeList resultados = ((XmlElement)registros[0]).GetElementsByTagName("ResultadoBase64");

                        string cadenaBase64 = resultados.Item(0).InnerText;
                        if (cadenaBase64.Length > 10)
                        {
                            Int32 i = 0;
                            //ResultadosResultado resXX = new ResultadosResultado();

                            foreach (XmlElement resultado in resultados)
                            {
                                string valor = resultado.InnerText;
                                rpta.Resultado.Add(valor);
                                //rpta.Resultado[i].Value = contenidoResultados[i].Value;
                                i++;
                            }
                            rpta.status   = "0";
                            rpta.Nombre   = Nombre;
                            rpta.Apellido = Apellidos;
                            using (SqlConnection conexion = new SqlConnection(Properties.Settings.Default.DBConexion))
                            {
                                conexion.Open();
                                string     insertar = "INSERT INTO LABRES_IMP (NRO_ORDEN,TIPO_DOC,NRO_DOC,NRO_IMP,FECHA_IMP) VALUES(@nroOrden,@tipoDoc,@nroDoc,@nroImp,@Fecha)";
                                SqlCommand sqlIns0  = new SqlCommand(insertar, conexion);
                                sqlIns0.Parameters.Add("@nroOrden", SqlDbType.Int);
                                sqlIns0.Parameters.Add("@tipoDoc", SqlDbType.NVarChar);
                                sqlIns0.Parameters.Add("@nroDoc", SqlDbType.VarChar);
                                sqlIns0.Parameters.Add("@nroImp", SqlDbType.SmallInt);
                                sqlIns0.Parameters.Add("@Fecha", SqlDbType.DateTime);

                                sqlIns0.Parameters["@nroOrden"].Value = nroOrdenwRK;
                                sqlIns0.Parameters["@tipoDoc"].Value  = tipoDoc;
                                sqlIns0.Parameters["@nroDoc"].Value   = Documento;
                                sqlIns0.Parameters["@nroImp"].Value   = 1;
                                sqlIns0.Parameters["@Fecha"].Value    = DateTime.Now;

                                sqlIns0.ExecuteNonQuery();
                                System.IO.StreamWriter sw2 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                                using (sw2)
                                {
                                    sw2.WriteLine("Guarda--Orden:" + nroOrdenwRK + " Documento:" + Documento + " Evento:" + DateTime.Now.ToString() + "\r\n");
                                    sw2.Close();
                                }
                            }
                        }
                        else
                        {
                            rpta.status = "4";
                            rpta.Resultado.Add("");
                        }
                    }
                    else
                    {
                        rpta.status = "1";
                        rpta.Resultado.Add("");
                    }
                }
                else
                {
                    rpta.status = "2";
                    rpta.Resultado.Add("");
                }
                XmlSerializer salida     = new XmlSerializer(rpta.GetType());
                StringWriter  textWriter = new StringWriter();
                salida.Serialize(textWriter, rpta);

                System.IO.StreamWriter sw3 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                using (sw3)
                {
                    sw3.WriteLine("Envio a Kiosco--Orden:" + nroOrdenwRK + " Documento:" + Documento + " Evento:" + DateTime.Now.ToString() + "\r\n");
                    if (rpta.Resultado.First <string>().Length > 0)
                    {
                        sw3.WriteLine("Respuesta:" + rpta.Resultado.First <string>().Substring(0, 10));
                    }
                    else
                    {
                        sw3.WriteLine(" !! Respuesta: No se Imprime !!");
                    }
                    sw3.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw3.WriteLine(archivo + "\r\n");
                    sw3.Close();
                }
                return(textWriter.ToString());
            }
            catch (SqlException ex1)
            {
                // "Error en Datos:" + ex1.Message;
                rpta.status = "5";
                rpta.Resultado.Add(ex1.Message);
                rpta.Nombre   = "";
                rpta.Apellido = "";
                XmlSerializer salida     = new XmlSerializer(rpta.GetType());
                StringWriter  textWriter = new StringWriter();
                salida.Serialize(textWriter, rpta);
                // string archivo = "C:\\Basura";
                System.IO.StreamWriter sw5 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                using (sw5)
                {
                    sw5.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw5.WriteLine("Status:" + rpta.status + "  mensaje:" + rpta.Resultado.First <string>() + " Evento:" + DateTime.Now.ToString() + "\r\n");
                    sw5.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw5.WriteLine(archivo + "\r\n");
                    sw5.Close();
                }
                return(textWriter.ToString());
            }
            catch (EndpointNotFoundException ex2)
            {
                // "Error en comunicaciones:" + ex2.Message;
                rpta.status = "5";
                rpta.Resultado.Add(ex2.Message);
                rpta.Nombre   = "";
                rpta.Apellido = "";
                XmlSerializer salida     = new XmlSerializer(rpta.GetType());
                StringWriter  textWriter = new StringWriter();
                salida.Serialize(textWriter, rpta);
                System.IO.StreamWriter sw6 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                using (sw6)
                {
                    sw6.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw6.WriteLine("Status:" + rpta.status + "  mensaje:" + rpta.Resultado.First <string>() + " Evento:" + DateTime.Now.ToString() + "\r\n");
                    sw6.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw6.WriteLine(archivo + "\r\n");
                    sw6.Close();
                }
                return(textWriter.ToString());
            }
            catch (DataException ex3)
            {
                //return "Error de Datos:" + ex3.Message;
                rpta.status = "5";
                rpta.Resultado.Add(ex3.Message);
                rpta.Nombre   = "";
                rpta.Apellido = "";
                XmlSerializer salida     = new XmlSerializer(rpta.GetType());
                StringWriter  textWriter = new StringWriter();
                salida.Serialize(textWriter, rpta);
                System.IO.StreamWriter sw7 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                using (sw7)
                {
                    sw7.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw7.WriteLine("Status:" + rpta.status + "  mensaje:" + rpta.Resultado.First <string>() + " Evento:" + DateTime.Now.ToString() + "\r\n");
                    sw7.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw7.WriteLine(archivo + "\r\n");
                    sw7.Close();
                }
                return(textWriter.ToString());
            }
            catch (FaultException ex4)
            {
                //return "Fallo General:" + ex4.Message + "    Razon:" + ex4.Reason.ToString() + "    Accion:" + ex4.Action;
                rpta.status = "5";
                rpta.Resultado.Add(ex4.Message);
                rpta.Nombre   = "";
                rpta.Apellido = "";
                XmlSerializer salida     = new XmlSerializer(rpta.GetType());
                StringWriter  textWriter = new StringWriter();
                salida.Serialize(textWriter, rpta);
                System.IO.StreamWriter sw8 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                using (sw8)
                {
                    sw8.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw8.WriteLine("Status:" + rpta.status + "  mensaje:" + rpta.Resultado.First <string>() + " Evento:" + DateTime.Now.ToString() + "\r\n");
                    sw8.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw8.WriteLine(archivo + "\r\n");
                    sw8.Close();
                }
                return(textWriter.ToString());
            }
            catch (InvalidMessageContractException ex5)
            {
                //return "Error en mensaje:" + ex5.Message;
                rpta.status = "5";
                rpta.Resultado.Add(ex5.Message);
                rpta.Nombre   = "";
                rpta.Apellido = "";
                XmlSerializer salida     = new XmlSerializer(rpta.GetType());
                StringWriter  textWriter = new StringWriter();
                salida.Serialize(textWriter, rpta);
                System.IO.StreamWriter sw9 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                using (sw9)
                {
                    sw9.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw9.WriteLine("Status:" + rpta.status + "  mensaje:" + rpta.Resultado.First <string>() + " Evento:" + DateTime.Now.ToString() + "\r\n");
                    sw9.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw9.WriteLine(archivo + "\r\n");
                    sw9.Close();
                }
                return(textWriter.ToString());
            }
            catch (IOException ex6)
            {
                //return "Excepcion de Entrada /Salida:" + ex6.Message;
                rpta.status = "5";
                rpta.Resultado.Add(ex6.Message);
                rpta.Nombre   = "";
                rpta.Apellido = "";
                XmlSerializer salida     = new XmlSerializer(rpta.GetType());
                StringWriter  textWriter = new StringWriter();
                salida.Serialize(textWriter, rpta);
                System.IO.StreamWriter sw10 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                using (sw10)
                {
                    sw10.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw10.WriteLine("Status:" + rpta.status + "  mensaje:" + rpta.Resultado.First <string>() + " Evento:" + DateTime.Now.ToString() + "\r\n");
                    sw10.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw10.WriteLine(archivo + "\r\n");
                    sw10.Close();
                }
                return(textWriter.ToString());
            }
            catch (SerializationException ex7)
            {
                //return "Error en la serializacion:" + ex7.Message;
                rpta.status = "5";
                rpta.Resultado.Add(ex7.Message);
                rpta.Nombre   = "";
                rpta.Apellido = "";
                XmlSerializer salida     = new XmlSerializer(rpta.GetType());
                StringWriter  textWriter = new StringWriter();
                salida.Serialize(textWriter, rpta);
                System.IO.StreamWriter sw11 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                using (sw11)
                {
                    sw11.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw11.WriteLine("Status:" + rpta.status + "  mensaje:" + rpta.Resultado.First <string>() + " Evento:" + DateTime.Now.ToString() + "\r\n");
                    sw11.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw11.WriteLine(archivo + "\r\n");
                    sw11.Close();
                }
                return(textWriter.ToString());
            }
            catch (ServerTooBusyException ex8)
            {
                //return "Servidor se encuentra ocupado:" + ex8.Message;
                rpta.status = "5";
                rpta.Resultado.Add(ex8.Message);
                rpta.Nombre   = "";
                rpta.Apellido = "";
                XmlSerializer salida     = new XmlSerializer(rpta.GetType());
                StringWriter  textWriter = new StringWriter();
                salida.Serialize(textWriter, rpta);
                System.IO.StreamWriter sw12 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                using (sw12)
                {
                    sw12.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw12.WriteLine("Status:" + rpta.status + "  mensaje:" + rpta.Resultado.First <string>() + " Evento:" + DateTime.Now.ToString() + "\r\n");
                    sw12.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw12.WriteLine(archivo + "\r\n");
                    sw12.Close();
                }
                return(textWriter.ToString());
            }
            catch (SystemException ex9)
            {
                //return "Error general del Sistema:" + ex9.Message + ex9.StackTrace;
                rpta.status = "6";
                rpta.Resultado.Add(ex9.Message);
                rpta.Nombre   = "";
                rpta.Apellido = "";
                XmlSerializer salida     = new XmlSerializer(rpta.GetType());
                StringWriter  textWriter = new StringWriter();
                salida.Serialize(textWriter, rpta);
                System.IO.StreamWriter sw13 = new System.IO.StreamWriter(archivo + "\\logKioscos.log", true);
                using (sw13)
                {
                    sw13.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw13.WriteLine("Status:" + rpta.status + "  mensaje:" + rpta.Resultado.First <string>() + " Evento:" + DateTime.Now.ToString() + "\r\n");
                    sw13.WriteLine("--------------------------------------------------------------------------------" + "\r\n");
                    sw13.WriteLine(archivo + "\r\n");
                    sw13.Close();
                }
                return(textWriter.ToString());
            }
        }