Ejemplo n.º 1
0
        private string SubirArchivo(string url)
        {
            string Id = string.Empty;

            try
            {
                string content     = string.Empty;
                byte[] oFileToSave = null;

                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 |
                                                       SecurityProtocolType.Tls | SecurityProtocolType.Tls11;

                ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidationCallback;

                log.Info("Se descargara el certificado con la siguiente url " + url);
                HttpWebRequest request = Funciones.GenerarRequest(url);

                log.Info("Invocando a la descarga del archivo con la siguiente url " + url);
                WebResponse response = (HttpWebResponse)request.GetResponse();

                log.Info("Obteniendo la respuesta del Endpoint " + url);
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    oFileToSave = reader.CurrentEncoding.GetBytes(reader.ReadToEnd());
                }

                log.Info("Iniciando Configuracion de Digiweb para subir el archivo previamente descargado");

                string digiwebEndpoint      = ConfigurationManager.AppSettings["DigiWebEndpoint"];
                string digiDocCodigoSistema = ConfigurationManager.AppSettings["DigiDocCodigoSistema"];
                string digiDocCodigoExterno = ConfigurationManager.AppSettings["DigiDocCodigoExterno"];
                string digiDocCodigoId      = ConfigurationManager.AppSettings["DigiDocCodigoId"];

                DigiWeb.DigitalizacionServicio service = new DigiWeb.DigitalizacionServicio();
                service.Credentials = CredentialCache.DefaultCredentials;
                service.Url         = digiwebEndpoint;

                log.Info("Invocando a Digiweb para obtener la ruta de subida del archivo");
                string oRuta    = service.CalcularRutaSistema(digiDocCodigoSistema);
                string filename = string.Empty;
                filename = Path.GetFileName(url);
                filename = filename.Substring(0, filename.IndexOf(".")) + ".pdf";

                Guid oGuid_A_Traer;

                DigiWeb.EDocumentoOriginal oEDocumentoOriginal = new DigiWeb.EDocumentoOriginal();
                oEDocumentoOriginal.Id                 = Guid.NewGuid();
                oEDocumentoOriginal.CodigoSistema      = digiDocCodigoSistema;
                oEDocumentoOriginal.TipoEDocumentoId   = Convert.ToInt32(digiDocCodigoId);
                oEDocumentoOriginal.EstadoEDocumentoId = 1;
                oEDocumentoOriginal.Entidad            = "0";
                oEDocumentoOriginal.PreCuil            = 0;
                oEDocumentoOriginal.NumeroDocumento    = "0";
                oEDocumentoOriginal.DigitoVerificador  = 0;
                oEDocumentoOriginal.TipoTramite        = 0;
                oEDocumentoOriginal.Secuencia          = 0;
                oEDocumentoOriginal.Nombre             = filename;
                oEDocumentoOriginal.Ruta               = oRuta + "\\" + filename;
                oEDocumentoOriginal.FechaIndexacion    = DateTime.Now;
                oEDocumentoOriginal.CodigoExterno      = digiDocCodigoExterno;

                log.Info("Invocando a Digiweb para la subida logica del archivo");
                service.GuardarEDocumentoV2(oEDocumentoOriginal);

                oGuid_A_Traer = oEDocumentoOriginal.Id;

                log.Info("Inicio subida fisica del archivo nombre " + filename + " a la siguiente ruta " + oRuta);
                File.WriteAllBytes(oRuta + "\\" + filename, oFileToSave);

                log.Info("Invocando a Digiweb para verificar que se haya hecho la subida del archivo");
                var oEDocumentoSubido = service.TraerEDocumento(oGuid_A_Traer);

                if (oEDocumentoSubido != null)
                {
                    Id = Convert.ToString(oGuid_A_Traer);
                    log.Info("Se ha subido el archivo de nombre " + filename + " con el Id " + Id);
                }
            }
            catch (Exception ex)
            {
                log.Error("Fallo la subida del archivo de la url " + url);
                log.Error("Motivo del fallo: " + ex.Message);
                Console.WriteLine(ex.Message);
            }

            return(Id);
        }
Ejemplo n.º 2
0
        private IT_Archivo SubirArchivoRest(string url)
        {
            var archivo = new IT_Archivo();

            archivo.Id        = string.Empty;
            archivo.Error     = false;
            archivo.Detalle   = string.Empty;
            archivo.Url       = url;
            archivo.Extension = string.Empty;

            try
            {
                string content     = string.Empty;
                byte[] oFileToSave = null;

                log.Info("Se descargara el certificado con la siguiente url " + url);

                var client = new RestClient();
                client.Proxy   = Funciones.CrearProxy();
                client.BaseUrl = new Uri(url);

                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 |
                                                       SecurityProtocolType.Tls | SecurityProtocolType.Tls11;

                ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidationCallback;

                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return(true); });

                log.Info("Invocando a la descarga del archivo con la siguiente url " + url);
                var request = new RestRequest();
                request.Method = Method.GET;

                log.Info("Obteniendo la respuesta del Endpoint " + url);
                oFileToSave = client.DownloadData(request);

                archivo.Nombre = Path.GetFileName(url);
                string filename = archivo.Nombre;

                archivo.Extension = CheckFileExtension(oFileToSave);

                if (string.IsNullOrEmpty(archivo.Extension))
                {
                    throw new Exception("El archivo no es valido " + archivo.Nombre);
                }

                filename = filename.Substring(0, filename.IndexOf(".")) + "." + archivo.Extension;
                log.Info("Iniciando Configuracion de Digiweb para subir el archivo previamente descargado");

                string digiwebEndpoint      = ConfigurationManager.AppSettings["DigiWebEndpoint"];
                string digiDocCodigoSistema = ConfigurationManager.AppSettings["DigiDocCodigoSistema"];
                string digiDocCodigoExterno = ConfigurationManager.AppSettings["DigiDocCodigoExterno"];
                string digiDocCodigoId      = ConfigurationManager.AppSettings["DigiDocCodigoId"];

                DigiWeb.DigitalizacionServicio service = new DigiWeb.DigitalizacionServicio();
                service.Credentials = CredentialCache.DefaultCredentials;
                service.Url         = digiwebEndpoint;

                log.Info("Invocando a Digiweb para obtener la ruta de subida del archivo");
                string oRuta = service.CalcularRutaSistema(digiDocCodigoSistema);

                Guid oGuid_A_Traer;

                DigiWeb.EDocumentoOriginal oEDocumentoOriginal = new DigiWeb.EDocumentoOriginal();
                oEDocumentoOriginal.Id                 = Guid.NewGuid();
                oEDocumentoOriginal.CodigoSistema      = digiDocCodigoSistema;
                oEDocumentoOriginal.TipoEDocumentoId   = Convert.ToInt32(digiDocCodigoId);
                oEDocumentoOriginal.EstadoEDocumentoId = 1;
                oEDocumentoOriginal.Entidad            = "0";
                oEDocumentoOriginal.PreCuil            = 0;
                oEDocumentoOriginal.NumeroDocumento    = "0";
                oEDocumentoOriginal.DigitoVerificador  = 0;
                oEDocumentoOriginal.TipoTramite        = 0;
                oEDocumentoOriginal.Secuencia          = 0;
                oEDocumentoOriginal.Nombre             = filename;
                oEDocumentoOriginal.Ruta               = oRuta + "\\" + filename;
                oEDocumentoOriginal.FechaIndexacion    = DateTime.Now;
                oEDocumentoOriginal.CodigoExterno      = digiDocCodigoExterno;

                log.Info("Invocando a Digiweb para la subida logica del archivo");
                service.GuardarEDocumentoV2(oEDocumentoOriginal);

                oGuid_A_Traer = oEDocumentoOriginal.Id;

                log.Info("Inicio subida fisica del archivo nombre " + filename + " a la siguiente ruta " + oRuta);
                File.WriteAllBytes(oRuta + "\\" + filename, oFileToSave);

                log.Info("Invocando a Digiweb para verificar que se haya hecho la subida del archivo");
                var oEDocumentoSubido = service.TraerEDocumento(oGuid_A_Traer);

                if (oEDocumentoSubido != null)
                {
                    archivo.Id = Convert.ToString(oGuid_A_Traer);
                    log.Info("Se ha subido el archivo de nombre " + filename + " con el Id " + archivo.Id);
                }
                else
                {
                    throw new Exception("No se ha podido recuperar el archivo de nombre " + filename);
                }
            }
            catch (Exception ex)
            {
                archivo.Id      = string.Empty;
                archivo.Error   = true;
                archivo.Detalle = "Fallo la subida del archivo " + (archivo.Nombre ?? archivo.Url);
                log.Error("Fallo la subida del archivo de la url " + url);
                log.Error("Motivo del fallo: " + ex.Message);
                Console.WriteLine(ex.Message);
            }

            return(archivo);
        }