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); }
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); }