public void GeradorPassagemReprovadaTransacaParceiro(GeradorPassagemReprovadaTransacaParceiroArtespMessage mensagem)
        {
            try
            {
                Response = Handler.Execute(new GeradorPassagemReprovadaTransacaParceiroArtespRequest
                {
                    PassagemPendenteArtesp = mensagem.PassagemPendenteArtesp,
                    MotivoNaoCompensado    = mensagem.MotivoNaoCompensado,
                    DetalheViagemId        = mensagem.DetalheViagemId
                });
            }
            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
            });
        }
Beispiel #2
0
        protected override void ChamarRequisicao(ValidadorPassagemValePedagioArtespMessage mensagem)
        {
            try
            {
                Response = Handler.Execute(new ValidadorPassagemValePedagioRequest {
                    PassagemPendenteArtesp = mensagem.PassagemPendenteArtesp
                });
            }
            catch (Exception ex)
            {
                if (ex.GetType() == typeof(Exception) || ex.GetType() == typeof(DomainException))
                {
                    throw new PassagemInvalidaException(mensagem.PassagemPendenteArtesp.MensagemItemId, ex.Message, ex);
                }
                throw;
            }

            if (Response.MotivoNaoCompensado == MotivoNaoCompensado.SemMotivoNaoCompensado)
            {
                Workers[ArtespActorsEnum.ValidadorDivergenciaCategoriaPassagemActor].Tell(new ValidadorDivergenciaCategoriaPassagemArtespMessage
                {
                    PassagemPendenteArtesp = Response.PassagemPendenteArtesp,
                    ViagensAgendadas       = Response.ViagensAgendadas
                });
            }
            else
            {
                var m = new GeradorPassagemReprovadaTransacaParceiroArtespMessage
                {
                    DetalheViagemId        = Response.ViagemNaoCompensadaId ?? 0,
                    MotivoNaoCompensado    = Response.MotivoNaoCompensado,
                    PassagemPendenteArtesp = Response.PassagemPendenteArtesp
                };

                Workers[ArtespActorsEnum.GeradorPassagemReprovadaActor].Tell(m);
            }
        }
        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);
            }
        }