/// <inheritdoc /> public async Task DeleteTransaction(int id, int sessionUserId) { var transaction = await _transactionsRepository.GetTransaction(id); if (transaction == null) { throw new BusinessException("The transaction does not exist", ErrorStatus.DataNotFound); } if (transaction.UserId != sessionUserId) { throw new BusinessException("No permissions to perform this action", ErrorStatus.AccessDenied); } var user = await _userRepository.GetUser(sessionUserId); if (user == null) { throw new BusinessException("The user does not exist", ErrorStatus.DataNotFound); } var value = transaction.Quantity * transaction.Price; user.Budget += value; await _userRepository.Save(); _transactionsRepository.Remove(transaction); var saveTransactionTask = _transactionsRepository.Save(); var clearCacheTask = _transactionsRepository.ClearTransactionsCache(sessionUserId); await Task.WhenAll(saveTransactionTask, clearCacheTask); }
public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } return(PartialView(await _transactionRepository.GetTransaction(id))); }
public async Task <IActionResult> GetTransaction(int tId) { var userId = HttpContext.GetUserId(); var transaction = await _repo.GetTransaction(userId, tId); if (transaction == null) { return(RedirectToAction("Error", "Home")); } var userClient = await _usersRepository.GetClient(userId, transaction.ToId); ViewData["client"] = userClient; return(View("TransactionDetails", transaction)); }
/// <inheritdoc /> public async Task <UserTransaction> GetTransaction(int id) { return(await _baseRepository.GetTransaction(id)); }
public ActionResult GetOne(string settlementId, Guid transactionId) { return(Ok(_transactionsRepository.GetTransaction(settlementId, transactionId))); }
public Transaction GetTransaction(int id) { return(_transactionsRepository.GetTransaction(id)); }