public GameState ProcessMove(Position start, Position end) { var movePiece = new MoveServiceRequest { End = end, Start = start, Pieces = _gameState.Pieces, BlackPieces = _gameState.BlackPieces, WhitePieces = _gameState.WhitePieces }; var moveServiceResult = _moveService.MovePiece(movePiece, _gameState.MoveNumber); _gameState.MoveNumber += 1; _gameState.IsCheck = IsCheck(_gameState); _gameState.Pieces = moveServiceResult.Pieces; _gameState.BlackPieces = moveServiceResult.BlackPieces; _gameState.WhitePieces = moveServiceResult.WhitePieces; _gameState.ValidMoves = GenerateValidMoves(); return(_gameState); }