/// <summary>
        /// Executa o processamento de Passagens
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ValidadorPassagemSistemaAceiteManualReenvioResponse Execute(ValidadorPassagemSistemaAceiteManualReenvioRequest request)
        {
            _passagemForaDoPrazoValidator.Init(request.PassagemPendenteArtesp);

            var motivoNaoCompensado = MotivoNaoCompensado.SemMotivoNaoCompensado;

            VerificarPassagemEnviadaForaDoPrazo(request);
            VerificarReenvioInvalido(request);
            VerificarTagPracaBloqueada(request);

            if (motivoNaoCompensado == MotivoNaoCompensado.SemMotivoNaoCompensado)
            {
                motivoNaoCompensado = ValidarValorAceiteManualReenvio(request);
            }

            if (motivoNaoCompensado == MotivoNaoCompensado.SemMotivoNaoCompensado)
            {
                motivoNaoCompensado = ValidarCobrancaIndevida(request);
            }

            //Retorna o objeto pelo response...
            var response = new ValidadorPassagemSistemaAceiteManualReenvioResponse();

            response.PassagemPendenteArtesp = request.PassagemPendenteArtesp;
            response.MotivoNaoCompensado    = motivoNaoCompensado;

            return(response);
        }
Esempio n. 2
0
        private MotivoNaoCompensado ValidarPassagemEnviadaForaDoPrazo(ValidadorPassagemSistemaRequest request)
        {
            Log.Debug($"Passagem ID: {request.PassagemPendenteArtesp.MensagemItemId} - Fluxo: ValidadorPassagemSistemaHandler | Validar Passagem Fora Do Prazo");
            _passagemForaDoPrazoValidator.Init(request.PassagemPendenteArtesp);
            if (_passagemForaDoPrazoValidator.ValidatePrazo())
            {
                request.PassagemPendenteArtesp.PassagemRecusadaMensageria = true;

                return(MotivoNaoCompensado.PassagemEnviadaForaDoPrazo);
            }

            return(MotivoNaoCompensado.SemMotivoNaoCompensado);
        }