public PassagemPendenteEstacionamento CarregarPassagemPendentePark(PassagemPendenteEstacionamento passagemPendentePark)
        {
            Log.Info($"Passagem RegistroTransacaoId: {passagemPendentePark.RegistroTransacaoId} - Fluxo: GerarPassagemParkHandler | Criando Passagem Completa.");
            var query = new CriarPassagemCompletaParkQuery(_dataSourceConectSysReadOnly, _dataSourceFallBack);

            query.Execute(passagemPendentePark);

            return(passagemPendentePark);
        }
        public ValidarPassagemParkResponse Execute(ValidarPassagemParkRequest request)
        {
            PassagemPendenteEstacionamento = request.PassagemPendenteEstacionamento;

            Log.Info($"Passagem RegistroTransacaoId: {request.PassagemPendenteEstacionamento.RegistroTransacaoId} - Fluxo: ValidarPassagemParkResponse | ValidarConveniado");
            if (!_validator.Validate(request.PassagemPendenteEstacionamento, PassagemPendenteParkValidatorEnum.ValidarConveniado.ToString()))
            {
                throw new ParkException(request.PassagemPendenteEstacionamento, EstacionamentoErros.ConveniadoNaoEstacionamento);
            }

            Log.Info($"Passagem RegistroTransacaoId: {request.PassagemPendenteEstacionamento.RegistroTransacaoId} - Fluxo: ValidarPassagemParkResponse | ValidarTag");
            if (!_validator.Validate(request.PassagemPendenteEstacionamento, PassagemPendenteParkValidatorEnum.ValidarTag.ToString()))
            {
                throw new ParkException(request.PassagemPendenteEstacionamento, EstacionamentoErros.TagInvalida);
            }

            Log.Info($"Passagem RegistroTransacaoId: {request.PassagemPendenteEstacionamento.RegistroTransacaoId} - Fluxo: ValidarPassagemParkResponse | ValidarPraca");
            if (!_validator.Validate(request.PassagemPendenteEstacionamento, PassagemPendenteParkValidatorEnum.ValidarPraca.ToString()))
            {
                throw new ParkException(request.PassagemPendenteEstacionamento, EstacionamentoErros.PracaInvalida);
            }

            Log.Info($"Passagem RegistroTransacaoId: {request.PassagemPendenteEstacionamento.RegistroTransacaoId} - Fluxo: ValidarPassagemParkResponse | ValidarPista");
            if (!_validator.Validate(request.PassagemPendenteEstacionamento, PassagemPendenteParkValidatorEnum.ValidarPista.ToString()))
            {
                throw new ParkException(request.PassagemPendenteEstacionamento, EstacionamentoErros.PistaInvalida);
            }

            Log.Info($"Passagem RegistroTransacaoId: {request.PassagemPendenteEstacionamento.RegistroTransacaoId} - Fluxo: ValidarPassagemParkResponse | ValidarDataTransacaoUltrapassaLimitePermitido");
            ValidarDataTransacaoUltrapassaLimitePermitido();

            Log.Info($"Passagem RegistroTransacaoId: {request.PassagemPendenteEstacionamento.RegistroTransacaoId} - Fluxo: ValidarPassagemParkResponse | ValorTransacaoUltrapassaLimitePermitido");
            ValorTransacaoUltrapassaLimitePermitido();

            return(new ValidarPassagemParkResponse {
                PassagemPendenteEstacionamento = request.PassagemPendenteEstacionamento
            });
        }
Ejemplo n.º 3
0
 public ParkDomainException(PassagemPendenteEstacionamento passagemPendenteEstacionamento, string message)
 {
     PassagemPendenteEstacionamento = passagemPendenteEstacionamento;
     Message = $"Erro na requisição - {message}";
 }
 public ParkException(PassagemPendenteEstacionamento passagemPendenteEstacionamento, EstacionamentoErros erro)
     : base(erro.GetDescription())
 {
     PassagemPendenteEstacionamento = passagemPendenteEstacionamento;
     Erro = erro;
 }
        public IHttpActionResult Park(List <PassagemPendenteEstacionamentoDto> request)
        {
            var passagensPendentesEstacionamento = new List <PassagemPendenteEstacionamento>();

            foreach (var c in request)
            {
                var p = new PassagemPendenteEstacionamento
                {
                    RegistroTransacaoId = c.RegistroTransacaoId.TryToLong(),
                    Conveniado          = new Conveniado
                    {
                        CodigoProtocolo = c.CodigoConveniado.TryToInt()
                    },
                    Adesao = new Adesao
                    {
                        Tag = new Tag
                        {
                            OBUId = c.Tag.TryToLong()
                        }
                    },
                    Praca = new Praca
                    {
                        CodigoPraca = c.Praca.TryToInt()
                    },
                    Pista = new Pista
                    {
                        CodigoPista = c.Pista.TryToInt()
                    },
                    DataPassagem                = c.DataHoraTransacao,
                    DataHoraEntrada             = c.DataHoraEntrada,
                    Valor                       = c.ValorCobrado,
                    ValorDesconto               = c.ValorDesconto,
                    MotivoDesconto              = c.MotivoDesconto,
                    TempoPermanencia            = c.TempoPermanencia,
                    MotivoAtrasoTransmissao     = (MotivoAtrasoTransmissaoEstacionamento)c.MotivoAtrasoTransmissao,
                    TipoTransacaoEstacionamento = (TipoTransacaoEstacionamento)(c.TipoTransacao ?? 0),
                    Ticket                      = c.Ticket,
                    Mensalista                  = c.Mensalista,
                    Tag = new Tag
                    {
                        OBUId = c.Tag.TryToLong()
                    },
                    Detalhes = new List <DetalhePassagemPendenteEstacionamento>()
                };
                if (c.Detalhes != null && c.Detalhes.Any())
                {
                    c.Detalhes.ForEach((d) =>
                    {
                        p.Detalhes.Add(new DetalhePassagemPendenteEstacionamento
                        {
                            CodigoPraca = d.CodigoPraca,
                            CodigoPista = d.CodigoPista,
                            Data        = d.Data
                        });
                    });
                }

                passagensPendentesEstacionamento.Add(p);
            }

            var mensagem = new CoordinatorParkMessage
            {
                FluxoExecucao = Enums.ParkActorsEnum.CoordinatorParkActor,
                PassagensPendentesEstacionamentos = passagensPendentesEstacionamento
            };

            TransacaoParkActorSystem.Processar(mensagem);
            return(_result.Ok(true, "Processo iniciado com sucesso"));
        }
Ejemplo n.º 6
0
 public ValidarTransacaoRepetidaParkQuery(PassagemPendenteEstacionamento passagemPendenteEstacionamento)
 {
     _passagemPendenteEstacionamento = passagemPendenteEstacionamento;
 }