private async Task SolveCommandAsync() { IsLoading = true; try { GameBoard.RejectChanges(); await Task.Run(() => puzzle.Solve()); GameBoard = new GameBoardWrapper(new GameBoard(puzzle.SolvedPuzzleArray)); } finally { IsLoading = false; } }
/// <summary> /// Load GameBoard object into viewmodel /// </summary> /// <param name="puzzleId">Determine which puzzle object to load (nullable will load fresh game)</param> /// <returns></returns> public async Task LoadPuzzle(int?puzzleId = null) { if (puzzleId.HasValue) { puzzle = _gameRepository.GetPuzzleById(puzzleId.Value); GameBoard = new GameBoardWrapper(new GameBoard(puzzle.PuzzleArray)); } else { puzzle = PuzzleFactory.GetPuzzle(Difficulty); await Task.Run(() => puzzle.CreatePuzzle()); GameBoard = new GameBoardWrapper(new GameBoard(puzzle.PuzzleArray) { State = ObjectState.Added }); } }
public void ShouldWrapGameBoardModel() { var gameBoardWrapper = new GameBoardWrapper(new GameBoard()); Assert.IsInstanceOfType(gameBoardWrapper, typeof(GameBoardWrapper)); }