Exemplo n.º 1
0
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);

            MapperConfig.RegisterMappings();

            //Iniciando cache do sistema
            Cacheinitializer.Iniciar();

            //Iniciando o sistema de atores...
            TransacaoArtespActorSystem.Iniciar();
            TransacaoEdiActorSystem.Iniciar();
            TransacaoParkActorSystem.Iniciar();
        }
        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"));
        }