/// <summary> /// Handelings the transaction. /// </summary> /// <param name="id">The identifier.</param> /// <param name="model">The model.</param> /// <returns></returns> /// <exception cref="Exception">transaction Request not found</exception> public async Task <bool> HandelingTransaction(Guid id, TransactionHandelingModel model) { var query = _transactionRequestRepository.GetById(id); if (query == null) { throw new Exception("transaction Request not found"); } if (model.Select == 0) { var transactionIn = _transactionRepository.GetById(query.TransactionInId); transactionIn.TransactionStatusCode = "RJ"; var transactionOut = _transactionRepository.GetById(query.TransactionOutId); transactionOut.TransactionStatusCode = "RJ"; _transactionRepository.Update(transactionIn); _transactionRepository.Update(transactionOut); } else if (model.Select == 1) { var transactionIn = _transactionRepository.GetById(query.TransactionInId); transactionIn.TransactionStatusCode = "CMP"; var sharesAccountIn = _shareAccountRepository.GetById(transactionIn.ShareAccountId); sharesAccountIn.ShareAmount += transactionIn.TransactionAmount; var transactionOut = _transactionRepository.GetById(query.TransactionOutId); transactionOut.TransactionStatusCode = "CMP"; var sharesAccountOut = _shareAccountRepository.GetById(transactionOut.ShareAccountId); sharesAccountOut.ShareAmount -= transactionOut.TransactionAmount; _transactionRepository.Update(transactionIn); _transactionRepository.Update(transactionOut); _shareAccountRepository.Update(sharesAccountIn); _shareAccountRepository.Update(sharesAccountOut); } await _unitOfWork.CommitAsync(); return(true); }
public async Task <ResponseModel <bool> > HandelingTransaction([FromRoute] Guid id, [FromBody] TransactionHandelingModel model) { var result = await _transactionService.HandelingTransaction(id, model); Response.StatusCode = (int)HttpStatusCode.OK; return(new ResponseBuilder <bool>().Success() .Data(result) .Count(1) .build()); }