protected override async Task <MovimentacaoBancaria> GetMovimentacaoBancariaAsync(CriarMovimentacaoBancariaDto dto, CancellationToken cancellationToken)
        {
            var contaBancaria = await _contaBancariaRepository.GetContaBancariaAsync(dto.ContaBancariaId, cancellationToken);

            var deposito = new DepositoBuilder()
                           .WithContaBancaria(contaBancaria)
                           .WithData(DateTime.Now)
                           .WithValor(dto.Valor)
                           .Build();

            return(deposito);
        }
        protected override async Task <MovimentacaoBancaria> GetMovimentacaoBancariaAsync(CriarMovimentacaoBancariaDto dto, CancellationToken cancellationToken)
        {
            var contaBancaria = await _contaBancariaRepository.GetContaBancariaAsync(dto.ContaBancariaId, cancellationToken);

            var saque = new SaqueBuilder()
                        .WithContaBancaria(contaBancaria)
                        .WithData(DateTime.Now)
                        .WithValor(dto.Valor)
                        .Build();

            if (saque.IsValid())
            {
                var saldo = await _contaBancariaRepository.GetSaldoAsync(dto.ContaBancariaId, cancellationToken);

                if ((saldo - dto.Valor) <= default(decimal))
                {
                    saque.AddError("O valor informado é menor que o saldo da conta.");
                }
            }

            return(saque);
        }