Exemplo n.º 1
0
        public EmailViewModel CarregarEmailVisualizacao(long atividadeId)
        {
            var email      = _emailServico.ObterEmailCompletoPor(null, atividadeId);
            var envolvidos = _atividadeParteEnvolvidaServico.ObterPorAtividadeId(atividadeId);

            return(new EmailViewModel(email.AtividadeId, email.Id, email.CorpoDoEmail, email.Texto, email.Assunto,
                                      email.CriadoEm, email.Atividade.CriadoEm, envolvidos, email.Sentido));
        }
Exemplo n.º 2
0
        protected Email ObterEmailReferenciaCorpoEmail()
        {
            var emailHtml = ObterListaAtividadesCorpoEmail(_html);

            if (emailHtml.Count <= 0)
            {
                return(new Email());
            }

            var lEmailHtml2 = emailHtml.OrderByDescending(c => c.Value).ToList();

            return(_servicoEmail.ObterEmailCompletoPor(lEmailHtml2[0].Key, null));
        }
Exemplo n.º 3
0
        protected void CarregarAtividadeEmail(AtividadeNewViewModel model, Atividade atividade, string userId)
        {
            var email = _emailServico.ObterEmailCompletoPor(null, atividade.Id);

            if (email == null)
            {
                return;
            }

            var envolvidos = _atividadeParteEnvolvidaServico.ObterPorAtividadeId(atividade.Id);

            model.Email = new EmailViewModel(email.AtividadeId, email.Id, email.CorpoDoEmail, email.Texto,
                                             email.Assunto, email.CriadoEm, email.Atividade.CriadoEm, envolvidos, email.Sentido);

            if (!string.IsNullOrEmpty(email.Sentido))
            {
                model.listaStatusAtividade = email.Sentido.Trim().ToLower() == "s" ? _statusAtividadeServico.ObterStatusAtividadeEmailEnviado() : _statusAtividadeServico.ObterStatusAtividadeEmailRecebido();
            }

            var canal = _canalServico.ObterPorNome("email");

            if (canal != null)
            {
                model.listaMidia = new SelectList(_midiaServico.ObterPor(null, canal.FirstOrDefault().Id), "id",
                                                  "nome");
            }

            if (email.Atividade.AtendimentoId != null)
            {
                return;
            }

            var atendimento = new Atendimento(userId, _atendimentoServico.GerarNumeroProtocolo(DateTime.Now),
                                              canal != null ? canal.FirstOrDefault().Id : (int?)null, null);

            _atendimentoServico.Adicionar(atendimento);
            atividade.Atendimento = atendimento;

            atividade.AtendimentoId = atendimento.Id;
            model.atendimentoID     = atendimento.Id;
            _atividadeServico.Atualizar(atividade);

            var atendimentoAtividade = new AtendimentoAtividade(atividade.Id, atendimento.Id);

            _atendimentoAtividadeServico.Adicionar(atendimentoAtividade);
        }
        public EmailFormViewModel TratarEmail(EmailFormViewModel model)
        {
            ValidarRegrasEmail(model);

            if (!model.ValidationResult.IsValid)
            {
                return(model);
            }

            var envolvidos = CarregarEnvolvidos(model);

            if (model.EmailPaiId.HasValue)
            {
                var emailPai = _emailServico.ObterEmailCompletoPor((long)model.EmailPaiId, null);
                if (emailPai != null)
                {
                    model.PessoaJuridicaId = emailPai.Atividade.PessoasJuridicasId;
                    model.PessoaFisicaId   = emailPai.Atividade.PessoasFisicasId;
                    model.AtividadePaiId   = emailPai.AtividadeId;
                }
            }

            var configuracao = new Configuracao();

            configuracao.SetarUrlEmailAnexos();
            var diretorioArquivos = _configuracaoServico.ObterPorSigla(configuracao.Sigla).Valor;

            if (model.ConfiguracaoContaEmailId.HasValue)
            {
                var configuracaoContaEmail =
                    _configuracaoContaEmailServico.ObterPorId((int)model.ConfiguracaoContaEmailId);

                model.Remetente = configuracaoContaEmail.Email;
                model.FilaId    = configuracaoContaEmail.FilasId;
            }

            var htmlCompleto = @"<span style='color:white;mso-themecolor:background1'>IdEmailInicio[EmailId]|" +
                               DateTime.Now + "IdEmailFim <o:p></o:p></span>";

            model.Html = model.Html.Replace("style='pointer-events:none;'", "") + htmlCompleto;
            SalvarImagensTexto(model, diretorioArquivos);
            ProcessarAnexos(model.Anexos, diretorioArquivos);
            var email = _emailServico.Novo(model.UsuarioId, model.UsuarioId, null,
                                           model.OcorrenciaId,
                                           null, model.AtendimentoId, model.PessoaFisicaId, model.PessoaJuridicaId,
                                           null, model.AtividadePaiId, model.Assunto, null,
                                           model.Remetente, model.Html, model.Html, null, null, model.Sentido, model.Assunto,
                                           model.EmailPaiId, model.ConfiguracaoContaEmailId, model.FilaId, envolvidos,
                                           _anexos, model.StatusId, Guid.NewGuid().ToString());

            if (email.ValidationResult.IsValid)
            {
                model.AtividadeId = email.AtividadeId;
                model.EmailId     = email.Id;
            }
            else
            {
                model.ValidationResult = email.ValidationResult;
            }

            return(model);
        }
        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);
        }