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); }
public void ShouldThrowOnSaveGameAsGameResultIsNull() { var ghs = new GameHistoryService(_gameContext); var ex = Assert.Throws <ArgumentNullException>(() => ghs.Save(null)); Assert.That(ex.ParamName, Is.EqualTo("gameResult")); }
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")); }
// 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); }
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)); }