Пример #1
0
        public ActionResult Move(MoveDTO moveCoords)
        {
            GameVM vm;
            var    name        = User.Identity.Name;
            Room   currentRoom = _roomsManager.GetRoomById(moveCoords.GameID);

            if (currentRoom == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }
            currentRoom.MarkUserAsActive(new User()
            {
                Name = name
            });
            var currentGame = currentRoom.Game;

            lock (currentGame)
            {
                vm = currentGame.MakeTurnAndUpdateGame(moveCoords, name, currentRoom.Owner.Name);
                _roomsManager.SaveChanges(currentGame);
                if (currentGame.GameState == Game.State.Gameover)
                {
                    var dbContext          = new ApplicationDbContext();
                    var service            = new PlayerStatsService(dbContext);
                    var gameHistoryService = new GameHistoryService(dbContext);
                    service.UpdatePlayerStats(currentGame);
                    gameHistoryService.SaveGameToHistory(currentGame);
                }
            }
            JsonResult result = new JsonResult {
                Data = JsonConvert.SerializeObject(vm)
            };

            return(result);
        }
Пример #2
0
        public void ShouldThrowOnSaveGameAsGameResultIsNull()
        {
            var ghs = new GameHistoryService(_gameContext);
            var ex  = Assert.Throws <ArgumentNullException>(() => ghs.Save(null));

            Assert.That(ex.ParamName, Is.EqualTo("gameResult"));
        }
Пример #3
0
        public void ShouldThrowOnSaveGameAsPlayerResultZeroIsNull()
        {
            var ghs        = new GameHistoryService(_gameContext);
            var gameResult = new GameResult()
            {
                PlayerResults = new PlayerResult[1]
            };
            var ex = Assert.Throws <ArgumentNullException>(() => ghs.Save(gameResult));

            Assert.That(ex.ParamName, Is.EqualTo("gameResult.PlayerResults.0"));
        }
Пример #4
0
    // Use this for initialization
    void Start()
    {
        NetworkServerContainer server  = new NetworkServerContainer();
        MessageFactory         factory = new MessageFactory();

        server.Listen(Port);

        GameHistoryService gameHistory = new GameHistoryService(
            new GameRecordStore()
            );

        GameHistoryServerMessenger gameHistoryServerMessenger = new GameHistoryServerMessenger(
            server,
            factory
            );

        gameHistoryServerMessenger.RegisterOnGameRecord(gameHistory.RegisterGame);
        gameHistoryServerMessenger.RegisterOnPlayerProfile(gameHistory.ForPlayer);
        gameHistoryServerMessenger.RegisterOnAllGames(gameHistory.All);
    }
Пример #5
0
        public void ShouldSaveGameWithPlayerIdNullAsResultHasMultipleHighScores()
        {
            var ghs        = new GameHistoryService(_gameContext);
            var gameResult = new GameResult
            {
                PlayerResults = new PlayerResult[]
                {
                    GetPlayerResult(player: 234, points: 111),
                    GetPlayerResult(player: 123, points: 111),
                }
            };

            var savedGame = ghs.Save(gameResult);

            Assert.That(savedGame.Id, Is.GreaterThan(0));
            Assert.That(savedGame.PlayerId, Is.EqualTo(null));

            var foundGame = _gameContext.Games.Single(x => x.Id == savedGame.Id);

            Assert.That(savedGame.PlayerId, Is.EqualTo(savedGame.PlayerId));
        }