public IActionResult Get([FromBody] SudokuPuzzleModel sudokuPuzzle) { var puzzleMapper = new SudokuPuzzleMapper(); Puzzle internalPuzzle = puzzleMapper.ConvertApiModelToInternalModel(sudokuPuzzle); var puzzleSolver = new PuzzleSolver(internalPuzzle); puzzleSolver.Solve(); SudokuPuzzleModel responsePuzzle = puzzleMapper.ConvertInteralModelToApiModel(internalPuzzle); return(Ok(responsePuzzle)); }
public IActionResult Post([FromBody] SudokuPuzzleModel sudokuPuzzle) { var puzzleMapper = new SudokuPuzzleMapper(); Puzzle internalPuzzle = puzzleMapper.ConvertApiModelToInternalModel(sudokuPuzzle); var puzzleSolver = new PuzzleSolver(internalPuzzle); var completedValidator = new PuzzleCompletedValidator(internalPuzzle); var response = new ValidatedPuzzleResponse() { Valid = puzzleSolver.PuzzleIsValid(), Solved = puzzleSolver.PuzzleIsValid() && completedValidator.PuzzleIsCompleted() }; return(Ok(response)); }
public Puzzle ConvertApiModelToInternalModel(SudokuPuzzleModel apiModel) { int[,] puzzle = new int[9, 9]; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { int value = 0; if (apiModel.Puzzle[i][j].Value.HasValue) { value = apiModel.Puzzle[i][j].Value.Value; } puzzle[i, j] = value; } } return(new Puzzle(puzzle)); }
public SudokuPuzzleModel ConvertInteralModelToApiModel(Puzzle internalModel) { var puzzle = new SudokuPuzzleModel(); for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { int?value = null; if (internalModel.GetCell(i, j).Value != 0) { value = internalModel.GetCell(i, j).Value; } puzzle.Puzzle[i][j] = new SudokuCellModel() { Value = value }; } } return(puzzle); }