public HttpResponseMessage JoinGame(string gameName, string userName) { User u = new User(userName); MasterMindGameHandler.CreateNewUserIfNotExists(u); MasterMindGameHandler.JoinGame(gameName, u); MasterMindGameHandler.StartGameIfTheGameIsFull(gameName); GameSummaryModel result = new GameSummaryModel(MasterMindGameHandler.GamePool.Games.First(g => g.GameName.Equals(gameName))); return(Request.CreateResponse(HttpStatusCode.OK, result)); }
private static void UpdateData(string message) { var elements = message.Split(' '); switch (elements[0]) { case "0": if (elements.Length < 5) { break; } var newGame = new GameSummaryModel { GameId = elements[1], GameType = int.Parse(elements[2]), BotId = elements[3], Score = int.Parse(elements[4]) }; Games.Add(newGame); break; case "1": if (elements.Length < 3) { break; } var gameToRemove = Games.FirstOrDefault(x => x.GameId == elements[1]); if (gameToRemove != null) { Games.Remove(gameToRemove); } break; case "2": for (int i = 1; (i + 3) < elements.Length; i += 4) { var newGamel = new GameSummaryModel { GameId = elements[i], GameType = int.Parse(elements[i + 1]), BotId = elements[i + 2], Score = int.Parse(elements[i + 3]) }; Games.Add(newGamel); } break; case "3": if (elements.Length < 5) { break; } var game = Games.FirstOrDefault(x => x.GameId == elements[1]); if (game != null) { Games.Remove(game); game.GameId = elements[2]; game.GameType = int.Parse(elements[3]); game.Score = int.Parse(elements[4]); Games.Add(game); } break; case "4": for (var i = 1; i + 1 < elements.Length; i += 2) { var newgame = Games.FirstOrDefault(x => x.GameId == elements[i]); if (newgame != null) { newgame.Score = int.Parse(elements[i + 1]); } } break; default: Console.WriteLine("Received OP code " + elements[0]); break; } var fg = Games.FirstOrDefault(x => x.Score == Games.Max(y => y.Score)); if (fg != null) { FeaturedGame = fg.GameId; } else { FeaturedGame = null; } }