public async Task Credit_ShouldReturnAccepted() { //Arrange var player = _playersRepository.FindById(_testPlayerId); player.Register(); var request = new TransactionRequest(_testPlayerId, Guid.NewGuid(), 100, TransactionType.Deposit); //Act var actual = await _transactionService.Process(request); //Assert Assert.IsTrue(actual); }
public async Task <bool> Process(TransactionRequest transactionRequest) { var player = _playersRepository.FindById(transactionRequest.PlayerId); if (player?.Wallet == null) { return(false); } var transaction = new Transaction(transactionRequest.TransactionId, player.Wallet, transactionRequest.Amount, transactionRequest.TransactionType); transaction.Execute(); return(transaction.Accepted != null && transaction.Accepted.Value); }
public ActionResult <decimal> GetBalance(Guid playerId) { var player = _playersRepository.FindById(playerId); return(player?.Wallet != null?Ok(player.Wallet.Balance) : NotFound()); }