Пример #1
0
        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());
        }
Пример #2
0
        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);
        }