Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }