public PlayerVsPlayerWinGameCommandResult ExecuteCommand(PlayerVsPlayerWinGameCommand command) { PlayerVsPlayerWinGameCommandResult 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 PlayerVsPlayerWinGameCommandResult { CellSize = GameFieldConstants.LineLength, GameField = gameField, WinCoordinates = winCoordinates }; } return(result); }
public ActionResult WinGame(PlayerVsPlayerWinGameCommand command) { var answer = this.playerVsPlayerGameCommandHandler.ExecuteCommand(command); return(this.View(answer)); }