Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        public ActionResult <decimal> GetBalance(Guid playerId)
        {
            var player = _playersRepository.FindById(playerId);

            return(player?.Wallet != null?Ok(player.Wallet.Balance) : NotFound());
        }