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