public async Task <ActionResult <BankAccount> > DeleteBankAccount(int id)
        {
            var dto = new DeleteUserBankAccountDTO()
            {
                UserId        = GetLoggedUserId(),
                BankAccountId = id
            };

            await _bankAccountService.DeleteBankAccount(dto);

            return(Ok());
        }
        public async Task DeleteBankAccount(DeleteUserBankAccountDTO dto)
        {
            var bankAccount = await _bankAccountRepository.GetById(dto.BankAccountId);

            Validate.NotNull(bankAccount, "Bank account not found");
            Validate.IsTrue(bankAccount.UserId == dto.UserId, "Acesso negado");

            // TODO: check if bankAccount have Transactions
            //var transactions = await _transactionRepository.GetByBankAccount(dto.BankAccountId);

            // TODO: UnitOfWork
            //if(transactions.Count() > 0)
            //{
            //    await _transactionRepository.DeleteRange(transactions);
            //}

            _bankAccountRepository.Delete(bankAccount);
            Validate.IsTrue(await _uow.CommitAsync(), "Não foi possível remover a conta bancária");
        }