public async Task <String> ConvertirCadenaHaciaXml(CancellationToken cancelToken, String rutaArchivo, String nombreArchivo) { StringBuilder stringBuilder = new StringBuilder(); try { using (XmlWriter xmlWriter = XmlWriter.Create(stringBuilder)) { String[] lineas = File.ReadAllLines(rutaArchivo); xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement(Constante.TRAMAS); for (int i = 0; i < lineas.Length - 1; i++) { Int32 id = i + 1; xmlWriter.WriteStartElement(Constante.TRAMA); xmlWriter.WriteElementString(Constante.ID, id.ToString()); xmlWriter.WriteElementString(Constante.CADENA, lineas[i]); xmlWriter.WriteEndElement(); } xmlWriter.WriteEndElement(); xmlWriter.WriteEndDocument(); xmlWriter.Flush(); } String mensaje = stringBuilder.ToString() != String.Empty ? Constante.MENSAJE_CONVERTIR_CADENA_HACIA_XML_OK : Constante.MENSAJE_CONVERTIR_CADENA_HACIA_XML_NO_OK; mensaje = String.Format("{0} | {1}", mensaje, rutaArchivo); await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_NOTIFICACION, Constante.PROYECTO_COMUN, Constante.CLASE_UTIL, Constante.METODO_CONVERTIR_CADENA_HACIA_XML, nombreArchivo, mensaje); } catch (Exception e) { await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_ERROR, Constante.PROYECTO_COMUN, Constante.CLASE_UTIL, Constante.METODO_CONVERTIR_CADENA_HACIA_XML, nombreArchivo, Constante.MENSAJE_CONVERTIR_CADENA_HACIA_XML_NO_OK, e.Message); throw e; } return(stringBuilder.ToString()); }
public async Task <Boolean> EncriptarYEnviarArchivoDesarrolloAsync(CancellationToken cancelToken, String nombreArchivo, String rutaArchivo) { Boolean esConforme = false, esEncriptado = false, esEnviado = false; try { if (nombreArchivo != String.Empty) { String rutaDestino = String.Format("{0}{1}{2}", _carpetaEncriptado, nombreArchivo, Constante.EXTENSION_PGP); Process process = new Process(); process.StartInfo.FileName = Constante.PGP_EXE; String arguments = String.Format("{0} {1} {2} {3} {4} {5}", Constante.PGP_ENCRYPT, rutaArchivo, Constante.SCOTIABANK_DEV_KEY_ID, Constante.PGP_OUTPUT, _carpetaEncriptado, Constante.PGP_OVERWRITE); process.StartInfo.Arguments = arguments; process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; process.Start(); esEncriptado = process.WaitForExit(Timeout.Infinite); if (File.Exists(rutaDestino)) { esEncriptado = true; File.Delete(rutaArchivo); rutaArchivo = String.Format("{0}{1}{2}", _carpetaEncriptado, nombreArchivo, Constante.EXTENSION_PGP); nombreArchivo = nombreArchivo.Replace(Constante.EXTENSION_TXT, Constante.EXTENSION_PGP); PasswordAuthenticationMethod authentication = new PasswordAuthenticationMethod(_usuario, _clave); ConnectionInfo connection = new ConnectionInfo(_servidor, _puerto, _usuario, authentication); using (SftpClient sftpClient = new SftpClient(connection)) { sftpClient.Connect(); Boolean isConnected = sftpClient.IsConnected; if (isConnected) { using (FileStream fileStream = File.OpenRead(rutaArchivo)) { String rutaRemota = String.Format("{0}{1}", Constante.CARPETA_IN, nombreArchivo); sftpClient.UploadFile(fileStream, rutaRemota); esEnviado = sftpClient.Exists(rutaRemota); esConforme = esEnviado == true ? true : false; } } sftpClient.Disconnect(); sftpClient.Dispose(); } } } String mensajeEncriptado = esEncriptado ? Constante.MENSAJE_ENCRIPTAR_ARCHIVO_ASYNC_OK : Constante.MENSAJE_ENCRIPTAR_ARCHIVO_ASYNC_NO_OK; String mensajeEnviadp = esEnviado ? Constante.MENSAJE_ENVIAR_ARCHIVO_HACIA_BANCO_ASYNC_OK : Constante.MENSAJE_ENVIAR_ARCHIVO_HACIA_BANCO_ASYNC_NO_OK; String mensaje = esConforme ? String.Format("{0} | {1}", mensajeEncriptado, mensajeEncriptado) : String.Format("{0} | {1}", mensajeEncriptado, mensajeEncriptado); await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_NOTIFICACION, Constante.PROYECTO_COMUN, Constante.CLASE_UTIL, Constante.METODO_ENCRIPTAR_ARCHIVO_ASYNC, mensaje); } catch (Exception e) { await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_ERROR, Constante.PROYECTO_COMUN, Constante.CLASE_UTIL, Constante.METODO_ENCRIPTAR_ARCHIVO_ASYNC, Constante.MENSAJE_ENCRIPTAR_ARCHIVO_ASYNC_NO_OK, e.Message); throw e; } return(esConforme); }