public virtual async Task <AccountDto> ChangeBalanceAsync(Guid id, ChangeBalanceInput input) { var account = await _repository.GetAsync(id); var configuration = _accountGroupConfigurationProvider.Get(account.AccountGroupName); var transactionType = input.ChangedBalance > decimal.Zero ? TransactionType.Debit : TransactionType.Credit; var transaction = new Transaction(GuidGenerator.Create(), CurrentTenant.Id, account.Id, account.UserId, null, transactionType, PrepaymentConsts.ChangeBalanceActionName, PrepaymentConsts.ChangeBalancePaymentMethod, null, configuration.Currency, input.ChangedBalance, account.Balance); await _transactionRepository.InsertAsync(transaction, true); account.ChangeBalance(input.ChangedBalance); await _repository.UpdateAsync(account, true); return(await MapToGetOutputDtoAsync(account)); }
public virtual Task <AccountDto> ChangeBalanceAsync(Guid id, ChangeBalanceInput input) { return(_service.ChangeBalanceAsync(id, input)); }