public override async Task Adicionar(TransacaoEntity entity) { //validar o estado da entidade if (!ExecutarValidacao(new TransacaoValidation(), entity)) { return; } entity.ContaOrigem = await _contaService.ValidarAptidaoContaOrigemTransacao(entity.ContaOrigem.Agencia, entity.ContaOrigem.Numero, entity.ContaOrigem.Digito, entity.Valor); if (_notificador.TemNotificacao()) { return; } entity.ContaDestino = await _contaService.ValidarAptidaoContaDestinoTransacao(entity.ContaDestino.Agencia, entity.ContaDestino.Numero, entity.ContaDestino.Digito, entity.Valor); if (_notificador.TemNotificacao()) { return; } if (entity.ContaOrigem.Id == entity.ContaDestino.Id) { Notificar("Não é permitido fazer transação entre contas iguais"); return; } if (_notificador.TemNotificacao()) { return; } await _transacaoRepository.Adicionar(entity); }