/// <summary>Funcion Cargar titulos a DGP por lotes</summary> /// <param name="byTitulo"></param> /// <param name="idLote"></param> /// <return name="NumeroLote por DGP"></return> public string cargarTitulo(byte[] byTitulo, string idLote) { // Servidor de Desarrollo ///* ServiceReferencePrueba.autenticacionType autenticacion2 = new ServiceReferencePrueba.autenticacionType(); ServiceReferencePrueba.TitulosPortTypeClient soap2 = new ServiceReferencePrueba.TitulosPortTypeClient(); ServiceReferencePrueba.cargaTituloElectronicoRequest cRequest2 = new ServiceReferencePrueba.cargaTituloElectronicoRequest(); ServiceReferencePrueba.cargaTituloElectronicoResponse cResponse2 = new ServiceReferencePrueba.cargaTituloElectronicoResponse(); autenticacion2.usuario = "usuariomet.qa794"; autenticacion2.password = "******"; //*/ byte[] bytes = byTitulo; //CARGA DE TITULO EN SERVIDOR DE DESARROLLO// cRequest2.nombreArchivo = (idLote + ".zip").ToString(); cRequest2.archivoBase64 = bytes; cRequest2.autenticacion = autenticacion2; cResponse2 = soap2.cargaTituloElectronico(cRequest2); string cNumLote = cResponse2.numeroLote; return(cNumLote); }
/// <summary>Funcion Cargar titulos a DGP por lotes</summary> /// <param name="numLote">toma de la tabla lotes</param> /// <return name="cEstusLote">Estado del Lote en DGP</return> public short consultaTitulo(string numLote) { // Servidor de Desarrollo ///* ServiceReferencePrueba.autenticacionType autenticacion2 = new ServiceReferencePrueba.autenticacionType(); ServiceReferencePrueba.TitulosPortTypeClient soap2 = new ServiceReferencePrueba.TitulosPortTypeClient(); ServiceReferencePrueba.consultaProcesoTituloElectronicoRequest cRequest2 = new ServiceReferencePrueba.consultaProcesoTituloElectronicoRequest(); ServiceReferencePrueba.consultaProcesoTituloElectronicoResponse cResponse2 = new ServiceReferencePrueba.consultaProcesoTituloElectronicoResponse(); autenticacion2.usuario = "usuariomet.qa794"; autenticacion2.password = "******"; //*/ // CONSULTA TITULO EN SERVIDOR DE DESARROLLO// cRequest2.numeroLote = numLote; cRequest2.autenticacion = autenticacion2; cResponse2 = soap2.consultaProcesoTituloElectronico(cRequest2); short cEstusLote = cResponse2.estatusLote; return(cEstusLote); }
public statusWsTotal descargarTitulo(string numeroLote) { string errores = ""; int bandStatus = 0; //int status=0; string err = ""; byte[] archivoUnZip; //Procesos proc = new Procesos(); statusWs zipArchive = new statusWs(); EncodeDecode Encode = new EncodeDecode(); statusWsTotal resumen = new statusWsTotal(); string dMensaje = ""; string dNumLote = ""; byte[] dArchivo = null; // Servidor de Desarrollo ///* ServiceReferencePrueba.autenticacionType autenticacion2 = new ServiceReferencePrueba.autenticacionType(); ServiceReferencePrueba.TitulosPortTypeClient soap2 = new ServiceReferencePrueba.TitulosPortTypeClient(); ServiceReferencePrueba.descargaTituloElectronicoRequest dRequest2 = new ServiceReferencePrueba.descargaTituloElectronicoRequest(); ServiceReferencePrueba.descargaTituloElectronicoResponse dResponse2 = new ServiceReferencePrueba.descargaTituloElectronicoResponse(); autenticacion2.usuario = "usuariomet.qa794"; autenticacion2.password = "******"; //*/ string cNumLote = numeroLote; //DESCARGA DE TITULO// dRequest2.numeroLote = cNumLote; dRequest2.autenticacion = autenticacion2; // Esperamos cinco segundos para la respuesta //Thread.Sleep(5000); dResponse2 = soap2.descargaTituloElectronico(dRequest2); dMensaje = dResponse2.mensaje; dNumLote = dResponse2.numeroLote; dArchivo = dResponse2.titulosBase64; if (dArchivo == null) { string mensaje = "Error: Servicio DGP Documento: "; //+ doc + "Lote: " + dNumLote + " Mensaje Servidor: " + dMensaje; //string error = GrabaStObs(doc, 4, mensaje); resumen.errores += mensaje; return(resumen); } //UNZIP// using (var outputStream = new MemoryStream()) { using (var inputStream = new MemoryStream(dArchivo)) { using (var zipInputStream = new ZipInputStream(inputStream)) { zipInputStream.GetNextEntry(); zipInputStream.CopyTo(outputStream); } archivoUnZip = outputStream.ToArray(); //GUARDAR XLS File.WriteAllBytes(@"C:\Users\Luis\Documents\" + dNumLote + ".xls", archivoUnZip); } } //NUEVO LEER BYTES List <CamposXls> resunemXls = leerArchivoRespuesta(dNumLote); byte status = 0; string docxml; resumen.NumLote = dNumLote; foreach (CamposXls resp in resunemXls) { resumen.TotalTitulos += 1; switch (resp.Estatus) { case "1": resumen.Correctos += 1; status = 5; docxml = Regex.Replace(resp.Archivo, @"[^0-9]", "", RegexOptions.None); break; case "2": resumen.Fallidos += 1; status = 4; docxml = Regex.Replace(resp.Archivo, @"[^0-9]", "", RegexOptions.None); resumen.descripcion = resp.Descripcion; break; case " ": resumen.SinRespuesta += 1; status = 4; break; } //string error = GrabaStObs(doc, status, resp.Descripcion); // if (error.Length > 4 && error.Substring(0, 5) == "Error") // { // errores += "Error: No se pudo cambiar ST a registro en profesiones, del documento: " + doc; // } } //File.Delete(@"C:\Users\Luis\Documents\" + dNumLote + ".xls"); return(resumen); }
//LAMADA AL WEB SERVICE// //public string mandarWs(int doc, int id_usuario, string sello, string preAutentXml ) public string mandarWs(int doc, string sello, string prXml) { string errores = ""; int bandStatus = 0; //int status=0; string err = ""; byte[] archivoUnZip; //Procesos proc = new Procesos(); statusWs zipArchive = new statusWs(); EncodeDecode Encode = new EncodeDecode(); //string xML = db.XMLs.Where(x => x.ID_DOCUMENTO == doc).FirstOrDefault().XML_STR; string xML = prXml; //ENCODE string encode = Encode.Base64Encode(xML); byte[] bytes = System.Convert.FromBase64String(encode); string dMensaje = ""; string dNumLote = ""; byte[] dArchivo = null; // Servidor de Desarrollo ///* ServiceReferencePrueba.autenticacionType autenticacion2 = new ServiceReferencePrueba.autenticacionType(); ServiceReferencePrueba.TitulosPortTypeClient soap2 = new ServiceReferencePrueba.TitulosPortTypeClient(); ServiceReferencePrueba.cargaTituloElectronicoRequest cRequest2 = new ServiceReferencePrueba.cargaTituloElectronicoRequest(); ServiceReferencePrueba.cargaTituloElectronicoResponse cResponse2 = new ServiceReferencePrueba.cargaTituloElectronicoResponse(); ServiceReferencePrueba.descargaTituloElectronicoRequest dRequest2 = new ServiceReferencePrueba.descargaTituloElectronicoRequest(); ServiceReferencePrueba.descargaTituloElectronicoResponse dResponse2 = new ServiceReferencePrueba.descargaTituloElectronicoResponse(); autenticacion2.usuario = "usuariomet.qa794"; autenticacion2.password = "******"; //*/ //CARGA DE TITULO EN SERVIDOR DE DESARROLLO// cRequest2.nombreArchivo = (doc + ".xml").ToString(); cRequest2.archivoBase64 = bytes; cRequest2.autenticacion = autenticacion2; cResponse2 = soap2.cargaTituloElectronico(cRequest2); string cNumLote = cResponse2.numeroLote; //DESCARGA DE TITULO// dRequest2.numeroLote = cNumLote; dRequest2.autenticacion = autenticacion2; // Esperamos cinco segundos para la respuesta Thread.Sleep(5000); dResponse2 = soap2.descargaTituloElectronico(dRequest2); dMensaje = dResponse2.mensaje; dNumLote = dResponse2.numeroLote; dArchivo = dResponse2.titulosBase64; if (dArchivo == null) { string mensaje = "Error: Servicio DGP Documento: " + doc + "Lote: " + dNumLote + " Mensaje Servidor: " + dMensaje; string error = GrabaStObs(doc, 4, mensaje); errores += mensaje; return(errores); } //UNZIP// using (var outputStream = new MemoryStream()) { using (var inputStream = new MemoryStream(dArchivo)) { using (var zipInputStream = new ZipInputStream(inputStream)) { zipInputStream.GetNextEntry(); zipInputStream.CopyTo(outputStream); } archivoUnZip = outputStream.ToArray(); //GUARDAR XLS //File.WriteAllBytes(@"C:\Users\Desktop\ss.xls", dd); } } //LEER DATOS DENTRO DE XLS MemoryStream ms = new MemoryStream(archivoUnZip); Encoding codificacion = Encoding.Default; StreamReader sr = new StreamReader(ms, codificacion); string linea; int i = 0; while ((linea = sr.ReadLine()) != null) { i = i + 1; string lin = linea; if (lin.Contains("exitosamente")) { bandStatus = 1; zipArchive.status = bandStatus; zipArchive.descripcion = "Título electrónico registrado exitosamente. Lote: " + dNumLote; } else { if (lin.Contains("FOLIO")) { err = lin; zipArchive.descripcion = Regex.Replace(err, @"[^0-9A-Za-z.:,áéíóúÁÉÍÓÚ]", " ", RegexOptions.None) + " Lote: " + dNumLote; zipArchive.status = 2; } } } sr.Close(); //CAMBIO ESTATUS DE TITULO// //CAMBIAR ESTATUS //if (zipArchive.status == 1) //{ // string error = GrabaStObs(doc, 5, zipArchive.descripcion); // if (error.Length > 4 && error.Substring(0, 5) == "Error") // { // errores += "Error: No se pudo cambiar ST a registro en profesiones, del documento: " + doc; // } // //ACTUALIZAR XML EN TABLA .. excepto Normales ... // if (preAutentXml.Length > 0) // { // string docXml = preAutentXml; // try // { // XML tXML = db.XMLs.Where(x => x.ID_DOCUMENTO == doc).FirstOrDefault(); // if (tXML.XML_STR != docXml) // { // tXML.XML_STR = docXml; // db.Entry(tXML).State = EntityState.Modified; // db.SaveChanges(); // } // } // catch (Exception) // { // //Error no se pudo actualizar Xml // errores += "Error \t -(22) " + db.CAT_ERROR_MENSAJE.Find(22).DESCRIPCION + " \r\n"; // return (errores); // } // } // // Guarda Sello Documento IEA // db.SELLO_DOCUMENTO_IEA.Add(new SELLO_DOCUMENTO_IEA // { // ID_DOCUMENTO = doc, // ID_TIPOSELLADO = 3, // TXT_SELLO_DOCUMENTO_IEA = sello, // ID_ESTATUS_SELLO = 1, // FECHA_REGISTRO = DateTime.Now // }); // try { db.SaveChanges(); } // catch (Exception) // { // // return Conflict(); // errores += "Error: No se pudo actualizar Tabla SELLO_DOCUMENTO_IEA, documento: " + doc; // } // //BITACORA// // int moov = 5; // proc.GuardaBitacora(doc, (byte)moov, id_usuario); //} //else //{ // string error = GrabaStObs(doc, 4, zipArchive.descripcion); // errores += "Error: " + zipArchive.descripcion; // //BITACORA// // int moov = 9; // proc.GuardaBitacora(doc, (byte)moov, id_usuario); //} if (errores.Length == 0 && zipArchive.descripcion.Length > 0) { errores = zipArchive.descripcion; } return(errores); }