Пример #1
0
        public async Task Execute(PoliticoChangeMessage message)
        {
            var politico = _dbContext.Politicos.FirstOrDefault(_ =>
                                                               _.CPF == message.CPF);

            if (politico == null)
            {
                politico = new Politico(
                    message.CPF,
                    message.Nome,
                    message.Apelido,
                    message.Nascimento,
                    message.NascimentoUF,
                    message.NascimentoMunicipio)
                {
                    EscolaridadeId = message.Escolaridade,
                    Falecimento    = message.Falecimento,
                    SituacaoId     = message.Situacao,
                    SexoId         = message.Sexo
                };
                politico.SetIntegration(
                    message.Timestamp,
                    message.Origin,
                    message.Id);
                message.Contatos.ForEach(_ => politico.AddContato(_.Tipo, _.Valor));
                await _dbContext.Politicos.AddAsync(politico);
            }
            else
            {
                politico.Nome           = message.Nome;
                politico.Apelido        = message.Apelido;
                politico.EscolaridadeId = message.Escolaridade;
                politico.Falecimento    = message.Falecimento;
                politico.SituacaoId     = message.Situacao;
                politico.SexoId         = message.Sexo;
                politico.SetIntegration(
                    message.Timestamp,
                    message.Origin,
                    message.Id);
                message.Contatos.ForEach(_ => {
                    var contato = politico.Contatos.FirstOrDefault(_1 => (int)_1.Tipo == _.Tipo);
                    if (contato == null)
                    {
                        politico.AddContato(_.Tipo, _.Valor);
                    }
                    else
                    {
                        if (contato.Contato != _.Valor)
                        {
                            contato.Contato = _.Valor;
                        }
                    }
                });
                _dbContext.Politicos.Update(politico);
            }

            await _dbContext.SaveChangesAsync();
        }
Пример #2
0
        public async Task Handle(PoliticoCreatedDomainEvent notification, CancellationToken cancellationToken)
        {
            var message = new PoliticoChangeMessage
            {
                Apelido             = notification.Politico.NM_URNA_CANDIDATO,
                CPF                 = notification.Politico.NR_CPF_CANDIDATO.ToString(),
                Escolaridade        = 1,
                Falecimento         = null,
                MandatoFim          = notification.Politico.DT_ELEICAO.AddYears(4),
                MandatoInicio       = notification.Politico.DT_ELEICAO,
                MandatoSituacao     = 1,
                Nascimento          = notification.Politico.DT_NASCIMENTO,
                MandatoTipo         = 1,
                NascimentoMunicipio = notification.Politico.NM_MUNICIPIO_NASCIMENTO,
                NascimentoUF        = notification.Politico.SG_UF_NASCIMENTO,
                Nome                = notification.Politico.NM_CANDIDATO,
                Partido             = notification.Politico.SG_PARTIDO,
                Sexo                = 1
            };

            await _busClient.PublishAsync(message);
        }