public ArquivoFormViewModel AbrirArquivo(long id) { var arquivo = _servicoArquivo.ObterPorId(id); var entidade = _servicoEntidade.ObterPorId(arquivo.EntidadeId); Configuracao diretorio; switch (entidade.NomeLogico.ToLower().Trim()) { case "chat": diretorio = _configuracaoServico.ObterDiretorioArquivosChat(); break; default: diretorio = _configuracaoServico.BuscarDiretorioEmailAnexos(); break; } // Alterado aqui, porque quando era anexado um arquivo dentro de um ocorrência, o mesmo não abria por procurar a pasta de Chat //var diretorio = entidade.Nome.Contains("email") // ? _configuracaoServico.BuscarDiretorioEmailAnexos() // : _configuracaoServico.ObterDiretorioArquivosChat(); var diretorioArquivo = string.Format("{0}\\{1}", diretorio.Valor, arquivo.Caminho); return(new ArquivoFormViewModel(arquivo.Nome, diretorioArquivo, arquivo.Tamanho, arquivo.Extensao, arquivo.ChaveEntidadeId, arquivo.EntidadeId, arquivo.ContentType())); }
public TodosAnexosViewModel TodosAnexos(long atividadeId) { var retorno = new TodosAnexosViewModel(); try { var anexos = _emailAnexoServico.ObterAnexos(atividadeId).Where(c => c.ImagemCorpo == false); var mail = _emailServico.ObterEmailCompletoPor(null, atividadeId); var diretorio = _configuracaoServico.SetarUrlTodosAnexosEmail(); var diretorioImagens = _configuracaoServico.BuscarDiretorioEmailAnexos(); DirectoryInfo di = new DirectoryInfo(diretorio.Valor); if (!di.Exists) { di.Create(); } var arquivoZip = mail.Assunto.Replace("\"", "").Replace("\t", "").Replace(" ", "_") .Replace("\\\\", "\\").Replace(":", "").Replace("*", "").Replace("|", "").Replace("?", "") .Replace("<", "").Replace(">", "").Replace("/", ""); ; string zipFile = string.Format("{0}\\{1}.zip", diretorio.Valor, arquivoZip); retorno.Arquivo = arquivoZip + ".zip"; retorno.Diretorio = zipFile; retorno.Valido = true; //string extractPath = @"\\srvwsapp03\HOME_SHARED\aigbr.bizpro.com.br\crm\storageEmails\Entrada\2018\4\16\156cc586-38d6-4cf1-b324-3c364608a6fe"; if (File.Exists(zipFile)) { File.Delete(zipFile); } using (var zipArchive = ZipFile.Open(zipFile, ZipArchiveMode.Create)) { foreach (var item in anexos) { zipArchive.CreateEntryFromFile(diretorioImagens.Valor + item.Path, item.Nome, CompressionLevel.Optimal); } //DirectoryInfo di = new DirectoryInfo(extractPath); //FileInfo[] filesToArchive = di.GetFiles(); //if (filesToArchive != null && filesToArchive.Length > 0) //{ // foreach (FileInfo fileToArchive in filesToArchive) // { // zipArchive.CreateEntryFromFile(fileToArchive.FullName, fileToArchive.Name, CompressionLevel.Optimal); // } //} } } catch (Exception ex) { var msg = ex.Message; retorno.Valido = false; } return(retorno); }