public ActionResult StartBlackjackGame(PlayerBetViewModel model)
        {
            try
            {
                if (model == null)
                {
                    return(BadRequest("Error starting new game. ViewModel cannot be null."));
                }

                if (model.Player == null)
                {
                    return(BadRequest("Error starting new game. Player cannot be null."));
                }

                if (model.Bet > model.Player.CurrentMoney || model.Bet <= 0)
                {
                    return(BadRequest(
                               "Invalid bet. Please choose a bet greater than zero and less than the player's available money."
                               ));
                }

                CasinoTable table = _gameManager.StartNewGame(model);
                table.Player.Cards = _gameManager.HandleAces(table.Player);

                return(Ok(table));
            }
            catch (Exception)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, "Database Failed when retrieving Players data."));
            }
        }
        protected Task <HttpResponseMessage> StartBlackjackGame(PlayerBetViewModel model)
        {
            var requestPath = $"{TestingServer.BaseAddress}{BlackjackRouteConstants.BaseRoute}{BlackjackRouteConstants.StartGameRoute}";
            var postRequest = new HttpRequestMessage(HttpMethod.Post, requestPath);

            postRequest.Content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");

            return(HttpClient.SendAsync(postRequest));
        }
        public CasinoTable StartNewGame(PlayerBetViewModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            var table = CreateCasinoTable(model);

            table.Player = SubtractBetFromPlayerWallet(table.Player);
            table        = DealCardsToBeginGame(table);

            return(table);
        }
 public BlackjackControllerTests(TestFixture testFixture) : base(testFixture)
 {
     TestPlayerModel = new PlayerModel()
     {
         Username     = "******",
         CurrentMoney = 100,
         TotalEarned  = 0,
         TotalLost    = 0,
         Active       = true
     };
     TestPlayerBetViewModel = new PlayerBetViewModel {
         Bet = 5, Player = TestPlayerModel
     };
     TestCasinoTable = new CasinoTable(TestPlayerBetViewModel);
 }
        public GameManagerTests()
        {
            _gameManager = new GameManager();

            TestPlayerModel = new PlayerModel()
            {
                Username     = "******",
                CurrentMoney = 100,
                TotalEarned  = 0,
                TotalLost    = 0,
                Active       = true
            };
            TestPlayerBetViewModel = new PlayerBetViewModel {
                Bet = 5, Player = TestPlayerModel
            };
            TestCasinoTable = new CasinoTable(TestPlayerBetViewModel);
        }
Exemple #6
0
        public void CasinoTable_ShouldCreateTableIfGivenPlayerBetViewModel()
        {
            var playerBetViewModel = new PlayerBetViewModel()
            {
                Bet    = 5,
                Player = new PlayerModel()
                {
                    Username     = "******",
                    CurrentMoney = 100,
                    TotalEarned  = 0,
                    TotalLost    = 0,
                    Active       = true
                }
            };

            var myTable = new CasinoTable(playerBetViewModel);

            Assert.Equal(myTable.Player.Username, playerBetViewModel.Player.Username);
            myTable.Dealer.Should().NotBeNull();
            myTable.Player.CurrentBet.Should().Be(5);
            myTable.Player.Score.Should().Be(0);
        }
 private CasinoTable CreateCasinoTable(PlayerBetViewModel model)
 {
     return(new CasinoTable(model));
 }