public async Task Gerar(OperacaoBinariaDto dto) { ValidarContaDestino(dto.ContaOrigemId, dto.ContaDestinoId); operacaoServico.ValidarDescricao(dto.Descricao); int transferenciaSaidaId = GerarPeloTipo(dto.ContaOrigemId, dto.Valor, dto.Descricao, TipoMovimentacao.Saida); int transferenciaEntradaId = GerarPeloTipo(dto.ContaDestinoId, dto.Valor, dto.Descricao, TipoMovimentacao.Entrada); await produtorClient.EnfileirarTransferencia(new EfetivarOperacaoBinariaDto(transferenciaSaidaId, transferenciaEntradaId)); }
public async Task Gerar(OperacaoUnariaDto dto) { operacaoServico.ValidarDescricao(dto.Descricao); var conta = contaServico.ObterConta(dto.ContaId); var bonificacao = ObterBonificacao(conta.Id, dto.Valor); var cashIn = new CashIn(conta.Id, dto.Valor, dto.Descricao, conta.Saldo, bonificacao); cashInRepositorio.Post(cashIn); contaServico.VincularCashIn(conta, cashIn); await produtorClient.EnfileirarCashIn(new EfetivarOperacaoUnariaDto(cashIn.Id)); }
public async Task Gerar(OperacaoUnariaDto dto) { operacaoServico.ValidarDescricao(dto.Descricao); var conta = contaServico.ObterConta(dto.ContaId); var valorTaxa = dto.Valor * configuracaoServico.ObterPercentualTaxa(); var cashOut = new CashOut(conta.Id, dto.Valor, dto.Descricao, conta.Saldo, valorTaxa); cashOutRepositorio.Post(cashOut); contaServico.VincularCashOut(conta, cashOut); await produtorClient.EnfileirarCashOut(new EfetivarOperacaoUnariaDto(cashOut.Id)); }