Example #1
0
        public PlayerVsMonkeyBotWinGameCommandResult ExecuteCommand(PlayerVsMonkeyBotWinGameCommand command)
        {
            PlayerVsMonkeyBotWinGameCommandResult result;

            using (var context = new TicTacToeContext())
            {
                var game  = context.Set <Game>().Include(game1 => game1.Field).FirstOrDefault(game1 => game1.GameId == command.GameId);
                var field = game.Field;

                var fieldCode = GameHelper.GetFieldByNumber(game.FieldNumber, field);
                var gameField = this.fieldStateConverter.StringToGameField(fieldCode);

                var gameProcessStatistic = this.gameProcessStatisticProvider.GetGameProcessStatistic(gameField);

                var winCoordinates = GameHelper.GetWinCoordinates(gameProcessStatistic);

                GameHelper.RefreshStatistic(game.GameId, gameProcessStatistic.GameStatus, context);

                context.Set <Game>().Remove(game);
                context.SaveChanges();

                result = new PlayerVsMonkeyBotWinGameCommandResult
                {
                    CellSize       = GameFieldConstants.LineLength,
                    GameField      = gameField,
                    WinCoordinates = winCoordinates
                };
            }

            return(result);
        }
        public ActionResult WinGame(PlayerVsMonkeyBotWinGameCommand command)
        {
            var answer = this.playerVsMonkeyBotCommandHandler.ExecuteCommand(command);

            answer.Message = command.Message;
            return(this.View(answer));
        }