public Atividade AdicionarAtividadeEmail(string userId, long?ocorrenciaId, long?contratoId,
                                                 long?atendimentoId, string titulo, string descricao, long?pessoaFisicaId, long?pessoaJuridicaId,
                                                 long?potencialClienteId, int?canalId, int?midiaId, string iniciadoPorUserId, long?atividadeDeOrigemId,
                                                 IEnumerable <AtividadeParteEnvolvida> envolvidos, string responsavelPorUserId, bool enviarEmail,
                                                 int?statusAtividadeId)
        {
            if (string.IsNullOrEmpty(userId))
            {
                var usuarioAdm = _servicoUsuario.ObterPorEmail("*****@*****.**");
                userId = usuarioAdm != null ? usuarioAdm.Id : "f712efbb-4646-4870-8f37-a687cb2e8978";
            }

            var atividadeTipo = _servicoAtividadeTipo.BuscarPorNome("email");

            //var statusAtividadeId = 0;

            if (enviarEmail)
            {
                var statusAtividade = _servicoStatusAtividade.ObterStatusAtividade("Aguardando Envio", "email");
                if (statusAtividade != null)
                {
                    statusAtividadeId = statusAtividade.FirstOrDefault().Id;
                }
            }

            if (!statusAtividadeId.HasValue || statusAtividadeId == 0)
            {
                var statusAtividade = _servicoStatusAtividade.ObterStatusAtividadeEmail().FirstOrDefault();
                if (statusAtividade != null)
                {
                    statusAtividadeId = statusAtividade.Id;
                }
            }

            if (!canalId.HasValue)
            {
                var canal = _canalServico.ObterCanalEmail();
                if (canal.ValidationResult.IsValid)
                {
                    canalId = canal.Id;
                }
            }

            var atividade = new Atividade(userId, (int)statusAtividadeId, atividadeTipo.Id, titulo, pessoaFisicaId,
                                          pessoaJuridicaId, potencialClienteId, ocorrenciaId, descricao, atendimentoId, midiaId, envolvidos,
                                          responsavelPorUserId, atividadeDeOrigemId, null, canalId, iniciadoPorUserId);

            atividade.ValidationResult = Adicionar(atividade);

            return(atividade);
        }
Пример #2
0
        public bool EmailSenha(string url, string email, string userId)
        {
            int     statusAtividadeId;
            Usuario usuarioSistema;
            var     retorno =
                _emailModeloServico.ObterPor(new EmailModelo {
                NomeDoModelo = "ESQUECI_MINHA_SENHA"
            }).FirstOrDefault();

            //colocar o usuario na tabela de configuração
            var usuarioSigla = _configuracaoServico.ObterPorSigla("USSYS");

            if (usuarioSigla != null)
            {
                usuarioSistema = _usuarioServico.BuscarPorNome(usuarioSigla.Valor).FirstOrDefault();
            }
            else
            {
                return(false);
            }

            if (retorno != null)
            {
                retorno.Html = retorno.Html.Replace("[URL]", url);
            }
            else
            {
                return(false);
            }

            var atividadeTipo = _atividadeTipoServico.BuscarPorNome("Email");

            if (atividadeTipo == null)
            {
                return(false);
            }

            var listaStatusEmail = _statusAtividadeServico.ObterStatusAtividadeEmail();

            if (listaStatusEmail.Any())
            {
                statusAtividadeId =
                    listaStatusEmail.FirstOrDefault(c => c.StatusPadrao && c.FinalizaAtividade == false).Id;
            }
            else
            {
                return(false);
            }

            int?canalId = null;
            {
                var canal = _servicoCanal.ObterCanalEmail();
                if (canal.ValidationResult.IsValid)
                {
                    canalId = canal.Id;
                }
            }

            var atividade = new Atividade(usuarioSistema.Id, statusAtividadeId, atividadeTipo.Id, "Esqueci Minha Senha",
                                          null, null, null, null, null, null, null, null, null, null, null, canalId, null);

            _atividadeServico.Adicionar(atividade);

            _atividadeParteEnvolvidaServico.Adicionar(new AtividadeParteEnvolvida(atividade.Id, null, null, null,
                                                                                  usuarioSistema.Id, "R", usuarioSistema.EnderecoEmail, usuarioSistema.Nome));
            _atividadeParteEnvolvidaServico.Adicionar(new AtividadeParteEnvolvida(atividade.Id, null, null, null, userId,
                                                                                  "D", email, null));

            var _email = new Email(email, userId, atividade.Id, retorno.Html, "S");

            _emailServico.Adicionar(_email);

            var fila = _filaServico.ObterFilasPorNome("EMAIL_TROCA_SENHA").FirstOrDefault();

            if (fila != null)
            {
                _atividadeFilaServico.Adicionar(new AtividadeFila(atividade.Id, fila.Id));
            }
            else
            {
                return(false);
            }

            return(true);
        }