Example #1
0
        public ValidationResult AtualizarEmailEnviado(long emailId)
        {
            var retorno = new ValidationResult();
            var email   = _repositorio.ObterPorId(emailId);

            if (email == null)
            {
                retorno.Add(new ValidationError("Nenhum e-mail retornado com o id: " + emailId));
                return(retorno);
            }

            var status = _statusAtividadeServico.ObterStatusAtividadePadraoFinalizaParaEmail();

            if (status == null)
            {
                retorno.Add(new ValidationError("Nenhum Status finalizador padrão cadastrado."));
                return(retorno);
            }

            _atividadeServico.AtualizarStatus(email.AtividadeId, status.Id, null, null);
            _atividadeFilaServico.AtualizaSaiuDaFilaPorAtividadeId(email.AtividadeId);

            return(retorno);
        }
        public ValidationResult AtualizarStatusAtividade(long atividadeId, int statusAtividadeId, string userId,
                                                         int?midiaId,
                                                         long?atendimentoId)
        {
            var retorno = new ValidationResult();

            if (atendimentoId.HasValue && atendimentoId > 0)
            {
                var statusAtividade = _statusAtividadeServico.ObterPorId(statusAtividadeId);

                if (!string.IsNullOrEmpty(statusAtividade.EntidadeNecessaria))
                {
                    var podeAtualizar =
                        _statusAtividadeServico.VerificarEntidadeRequeridaAtendimento((long)atendimentoId,
                                                                                      statusAtividadeId);

                    if (!podeAtualizar)
                    {
                        retorno.Add(
                            new ValidationError(
                                string.Format(
                                    "Não é possível alterar o status desse atendimento, pois ainda não houve criação e/ou interação de uma: {0}",
                                    statusAtividade.EntidadeNecessaria)));
                        return(retorno);
                    }
                }

                if (!string.IsNullOrEmpty(statusAtividade.EntidadeNaoNecessaria))
                {
                    var podeAtualizar =
                        _statusAtividadeServico.VerificarEntidadeNaoRequeridaAtendimento((long)atendimentoId,
                                                                                         statusAtividadeId);

                    if (!podeAtualizar)
                    {
                        retorno.Add(
                            new ValidationError(
                                string.Format(
                                    "Não é possível alterar o status desse atendimento, pois houve criação e/ou interação de uma: {0}",
                                    statusAtividade.EntidadeNaoNecessaria)));
                        return(retorno);
                    }
                }

                if (statusAtividade.TempoMaximoAtividadeEmMinutos.HasValue)
                {
                    var podeAtualizar = _statusAtividadeServico.VerificarTempoAtividade(atividadeId, statusAtividadeId);
                    if (!podeAtualizar)
                    {
                        retorno.Add(
                            new ValidationError(
                                string.Format(
                                    "Não é possível alterar o status desse atendimento para {0}, pois já foi ultrapassado o tempo máximo para essa classificação.",
                                    statusAtividade.Descricao)));
                        return(retorno);
                    }
                }

                if (statusAtividade.StatusAtividadeIdRequerida.HasValue)
                {
                    var podeAtualizar = _statusAtividadeServico.VerificarStatusAtividadeRequerida(atividadeId, statusAtividadeId);
                    if (!podeAtualizar)
                    {
                        retorno.Add(
                            new ValidationError(
                                string.Format(
                                    "Não é possível alterar o status desse atendimento para {0}, pois o status atual não condiz com o status requerido para essa alteração.",
                                    statusAtividade.Descricao)));
                        return(retorno);
                    }
                }

                if (midiaId.HasValue && midiaId > 0)
                {
                    _atendimentoServico.AtualizarMidia((long)atendimentoId, (int)midiaId);
                }
            }

            _atividadeServico.AtualizarStatus(atividadeId, statusAtividadeId, userId, midiaId);

            return(retorno);
        }