public string BaixarArquivo(int id, string fileType, Veros.Paperless.Model.Entidades.FileTransfer fileTransfer, bool usarCache = true, bool baixarThumbnail = false) { return(this.BaixarArquivo(fileTransfer, id, fileType, usarCache: usarCache, baixarThumbnail: baixarThumbnail)); }
public string BaixarArquivo( Veros.Paperless.Model.Entidades.FileTransfer fileTransferDoArquivo, int id, string fileType, bool baixarArquivoOriginal = false, bool manterNomeOriginal = false, bool usarCache = true, bool baixarThumbnail = false) { ////var fileTransferDoArquivo = this.obtemFileTransferDaPaginaServico.Obter(id, dataCenterId); var fileName = string.Format("{0}.{1}", id.ToString("000000000"), fileType); if (baixarArquivoOriginal) { fileName = string.Format("{0}ORIGINAL.{1}", id.ToString("000000000"), fileType); } if (baixarThumbnail) { fileName = string.Format("{0}_THUMB.{1}", id.ToString("000000000"), fileType); } var arquivoLocal = manterNomeOriginal ? Path.Combine(CacheDeImagensLocal.CaminhoPadrao, fileName) : Path.Combine(CacheDeImagensLocal.CaminhoPadrao, fileName.Replace("ORIGINAL", string.Empty)); Log.Application.DebugFormat( "Filetransfer: arquivo solicitado: {0}. UsarCache: {1}", arquivoLocal, usarCache); if (fileType.ToUpper().Equals("PDF")) { Log.Application.DebugFormat("Pagina #{0} não usará o cache pq é PDF", id); usarCache = false; } if (usarCache) { if (File.Exists(arquivoLocal)) { Log.Application.DebugFormat("Pagina #{0} recuperada do cache", id); return(arquivoLocal); } } var imagemFileTransfer = string.Format(@"/{0}/F/{1}", Files.GetEcmPath(id), fileName).ToUpper().Replace("\\", "/"); Directories.CreateIfNotExist(Path.GetDirectoryName(arquivoLocal)); try { using (var fileTransfer = FileTransferCliente.Obter()) { fileTransfer.Conectar( fileTransferDoArquivo.ConfiguracaoIp.Host, fileTransferDoArquivo.ConfiguracaoIp.Porta); fileTransfer.Baixar(arquivoLocal, imagemFileTransfer); } } catch (System.Exception exception) { if (exception.Message.Equals("Erro : No such file or directory")) { throw new FileNotFoundException("Arquivo nao encontrado"); } if (exception.Message.Contains("Arquivo não encontrado no file transfer")) { throw new FileNotFoundException("Arquivo nao encontrado"); } throw; } Log.Application.DebugFormat( "Filetransfer[{2}]: baixou arquivo de {0} para {1}", imagemFileTransfer, arquivoLocal, fileTransferDoArquivo.ConfiguracaoIp.DataCenterId); return(arquivoLocal); }