private async Task CheckIfTransactionIsAvilable(long userId, AccountTransactionCreateDTO modelDTO) { bool failTransaction = false; if (modelDTO.Amount <= 0) { failTransaction = true; } else if (modelDTO.Type == (long)AccountTransactionTypes.Deposit || modelDTO.Type == (long)AccountTransactionTypes.Withdrawal) { await AbortIfAuthUserIsNotOwnerAccountAsync(userId); } else if (modelDTO.Type == (long)AccountTransactionTypes.Bonus) { await CheckIfAuthUserIsSuperAdmin(); } else { failTransaction = true; } if (failTransaction) { throw new WebApiException(System.Net.HttpStatusCode.BadRequest, "invalid operation"); } }
public async Task <ActionResult <WebApiResponse> > SetAccountTransaction( long userId, long accountId, [FromBody] AccountTransactionCreateDTO data) { return(await((IUserAccountComponent)_userAccountCrudComponent) .SetAccountTransactionAsync(userId, accountId, data)); }
public async Task <ActionResult <WebApiResponse> > SetAccountTransactionAsync(long userId, long accountId, AccountTransactionCreateDTO modelDTO) { UserAccount userAccount = await CheckUserExistsAndGetUserAccount(userId, accountId); await((IAccountTransactionComponent)_sqlAccountTransactionContextCrud) .SetAccountTransactionAsync(userAccount, modelDTO); return(await GetOneUserAccountsAsync(userId, accountId)); }
public async Task <AccountTransaction> SetAccountTransactionAsync(UserAccount userAccount, AccountTransactionCreateDTO modelDTO) { await CheckIfTransactionIsAvilable(userAccount.UserOwner.Id, modelDTO); return(await SaveAccountTransaction(userAccount, (AccountTransactionTypes)modelDTO.Type, modelDTO.Amount)); }