Example #1
0
        protected override void ChamarRequisicao(ValidadorPassagemExistenteArtespMessage mensagem)
        {
            try
            {
                Response = Handler.Execute(new ValidadorPassagemExistenteRequest
                {
                    PassagemPendenteArtesp = mensagem.PassagemPendenteArtesp,
                    PassagemId             = mensagem.PassagemId
                });
            }
            catch (Exception ex)
            {
                if (ex.GetType() == typeof(Exception))
                {
                    throw new PassagemInvalidaException(mensagem.PassagemPendenteArtesp.MensagemItemId, ex.Message, ex);
                }
                throw;
            }


            if (Response is ValidadorPassagemExistenteTransacaoRecusadaResponse)
            {
                var transacaoRecusadaResponse = Response as ValidadorPassagemExistenteTransacaoRecusadaResponse;

                var m = new GeradorPassagemReprovadaTransacaoReprovadaExistenteArtespMessage
                {
                    PassagemPendenteArtesp = transacaoRecusadaResponse.PassagemPendenteArtesp,
                    TransacaoRecusada      = transacaoRecusadaResponse.TransacaoRecusada
                };

                Workers[ArtespActorsEnum.GeradorPassagemReprovadaActor].Tell(m);
            }
            else if (Response is ValidadorPassagemExistenteTransacaoPassagemResponse)
            {
                var transacaoPassagemResponse = Response as ValidadorPassagemExistenteTransacaoPassagemResponse;

                var m = new GeradorPassagemAprovadaComTransacaoExistenteArtespMessage
                {
                    TransacaoId           = transacaoPassagemResponse.TransacaoId,
                    MensagemItemId        = transacaoPassagemResponse.MensagemItemId,
                    CodigoProtocoloArtesp = transacaoPassagemResponse.CodigoProtocoloArtesp
                };

                Workers[ArtespActorsEnum.GeradorPassagemReprovadaActor].Tell(m);
            }
            else
            {
                Workers[ArtespActorsEnum.ValidadorPassagemPendenteConcessionariaActor].Tell(new ValidadorPassagemPendenteConcessionariaArtespMessage
                {
                    PassagemPendenteArtesp = Response.PassagemPendenteArtesp
                });
            }
        }
        public void ChamarGeradorTransacaoReprovadaExistente(GeradorPassagemReprovadaTransacaoReprovadaExistenteArtespMessage mensagem)
        {
            try
            {
                Response = Handler.Execute(new GeradorPassagemPendenteReprovadaTransacaoReprovadaExistenteRequest
                {
                    PassagemPendenteArtesp = mensagem.PassagemPendenteArtesp,
                    TransacaoRecusada      = mensagem.TransacaoRecusada
                });
            }
            catch (Exception ex)
            {
                if (ex.GetType() == typeof(Exception))
                {
                    throw new PassagemInvalidaException(mensagem.PassagemPendenteArtesp.MensagemItemId, ex.Message, ex);
                }
                throw;
            }

            Workers[ArtespActorsEnum.ProcessadorPassagemReprovadaActor].Tell(new ProcessadorPassagemReprovadaArtespMessage
            {
                PassagemReprovadaArtesp = Response.PassagemReprovadaArtesp
            });
        }
        protected void Processar <TMessageProcessar>(TMessageProcessar mensagem, Action <TMessageProcessar> action)
        {
            try
            {
                action(mensagem);
            }
            catch (PassagemDivergenciaCategoriaException ex)
            {
                var m = new GeradorPassagemReprovadaDivergenciaCategoriaArtespArtespMessage
                {
                    PassagemPendenteArtesp = ex.PassagemPendenteArtesp,
                    MotivoNaoCompensado    = ex.MotivoNaoCompensado
                };


                Workers[ArtespActorsEnum.GeradorPassagemReprovadaActor].Tell(m);
                //var mensagemItemId = ex.PassagemPendenteArtesp.MensagemItemId;
                //var metadata = new ActorMetaData($"GeradorPassagemReprovadaArtespActor{mensagemItemId}", $"akka://TransacaoArtesp/user/coordinator/GeradorPassagemReprovadaActor_{mensagemItemId}");
                //var actorRef = Context.ActorOf(Props.Create(() => new GeradorPassagemReprovadaArtespActor()), metadata.Name);

                //actorRef.Tell(m);
            }
            catch (PassagemReprovadaException ex)
            {
                var m = new GeradorPassagemReprovadaArtespMessage
                {
                    PassagemPendenteArtesp = ex.PassagemPendenteArtesp,
                    MotivoNaoCompensado    = ex.MotivoNaoCompensado
                };

                Workers[ArtespActorsEnum.GeradorPassagemReprovadaActor].Tell(m);
                //var mensagemItemId = ex.PassagemPendenteArtesp.MensagemItemId;
                //var metadata = new ActorMetaData($"GeradorPassagemReprovadaArtespActor{mensagemItemId}", $"akka://TransacaoArtesp/user/coordinator/GeradorPassagemReprovadaActor_{mensagemItemId}");
                //var actorRef = Context.ActorOf(Props.Create(() => new GeradorPassagemReprovadaArtespActor()), metadata.Name);

                //actorRef.Tell(m);
            }
            catch (PassagemPendenteReprovadaException ex)
            {
                var m = new GeradorPassagemPendenteReprovadaArtespMessage
                {
                    PassagemPendenteArtesp = ex.PassagemPendenteArtesp,
                    MotivoNaoCompensado    = ex.MotivoNaoCompensado
                };

                Workers[ArtespActorsEnum.GeradorPassagemReprovadaActor].Tell(m);
                //var mensagemItemId = ex.PassagemPendenteArtesp.MensagemItemId;
                //var metadata = new ActorMetaData($"GeradorPassagemReprovadaArtespActor{mensagemItemId}", $"akka://TransacaoArtesp/user/coordinator/GeradorPassagemReprovadaActor_{mensagemItemId}");
                //var actorRef = Context.ActorOf(Props.Create(() => new GeradorPassagemReprovadaArtespActor()), metadata.Name);

                //actorRef.Tell(m);
            }
            catch (TransacaoPassagemExistenteException ex)
            {
                var m = new GeradorPassagemAprovadaComTransacaoExistenteArtespMessage
                {
                    TransacaoId           = ex.TransacaoId,
                    MensagemItemId        = ex.MensagemItemId,
                    CodigoProtocoloArtesp = ex.CodigoProtocoloArtesp
                };

                Workers[ArtespActorsEnum.GeradorPassagemReprovadaActor].Tell(m);
                //var mensagemItemId = ex.MensagemItemId;
                //var metadata = new ActorMetaData($"GeradorPassagemReprovadaArtespActor{mensagemItemId}", $"akka://TransacaoArtesp/user/coordinator/GeradorPassagemReprovadaActor_{mensagemItemId}");
                //var actorRef = Context.ActorOf(Props.Create(() => new GeradorPassagemReprovadaArtespActor()), metadata.Name);

                //actorRef.Tell(m);
            }
            catch (TransacaoReprovadaExistenteException ex)
            {
                var m = new GeradorPassagemReprovadaTransacaoReprovadaExistenteArtespMessage
                {
                    PassagemPendenteArtesp = ex.PassagemPendenteArtesp,
                    TransacaoRecusada      = ex.TransacaoRecusada
                };



                Workers[ArtespActorsEnum.GeradorPassagemReprovadaActor].Tell(m);
                //var mensagemItemId = ex.PassagemPendenteArtesp.MensagemItemId;
                //var metadata = new ActorMetaData($"GeradorPassagemReprovadaArtespActor{mensagemItemId}", $"akka://TransacaoArtesp/user/coordinator/GeradorPassagemReprovadaActor_{mensagemItemId}");
                //var actorRef = Context.ActorOf(Props.Create(() => new GeradorPassagemReprovadaArtespActor()),metadata.Name);

                //actorRef.Tell(m);
            }
            catch (PassagemInvalidaException ex)
            {
                _log.Warn($"Passagem Inválida {ex.ReferenceKey} - {ex.Message} ", ex.InnerException);

                var m = new GeradorPassagemInvalidaArtespMessage
                {
                    PassagemPendenteArtesp = new PassagemPendenteArtesp
                    {
                        MensagemItemId = ex.ReferenceKey
                    }
                };

                Workers[ArtespActorsEnum.GeradorPassagemInvalidaActor].Tell(m);
            }
            catch (PassagemInvalidaNoSysException tpcpx)
            {
                var m = new GeradorPassagemProcessadaMensageriaMessage(
                    tpcpx.ResultadoPassagem,
                    tpcpx.PassagemPendenteArtesp,
                    tpcpx.TransacaoIdOriginal,
                    tpcpx.ValorRepasse,
                    tpcpx.DataPagamento,
                    tpcpx.MotivoNaoCompensado,
                    tpcpx.PassagemId);

                Workers[ArtespActorsEnum.ProcessadorPassagemAprovadaActor].Tell(m);
            }
            catch (TransacaoParceiroException tpx)
            {
                var m = new GeradorPassagemReprovadaTransacaParceiroArtespMessage
                {
                    DetalheViagemId        = tpx.DetalheViagemId,
                    MotivoNaoCompensado    = tpx.MotivoNaoCompensado,
                    PassagemPendenteArtesp = tpx.PassagemPendente
                };
                Workers[ArtespActorsEnum.GeradorPassagemReprovadaActor].Tell(m);
            }
            catch (Exception ex)
            {
                _log.Fatal(ex.Message, ex);
            }
        }