public async Task <KeyValuePair <Guid, Guid> > CreateGame(CreateGameRequest request)
        {
            //Create The Players Map
            var playerOneBoard = CreateBoard(request.PlayerOne, request.BoardSize);
            var playerTwoBoard = CreateBoard(request.PlayerTwo, request.BoardSize);

            //Validate Model
            var playerOneResult = ValidateModel(playerOneBoard);
            var playerTwoResult = ValidateModel(playerOneBoard);

            //Insert Models
            if (playerOneResult.isValid)
            {
                await _boardRepo.AddBoard(playerOneBoard);
            }
            else
            {
                _logger.LogError("Data Model Validation Failed", playerOneResult.results);
                throw new ValidationModelException(
                          "Board",
                          string.Join(" , ", playerOneResult.results.Select(x => x.ErrorMessage)));
            }

            if (playerTwoResult.isValid)
            {
                await _boardRepo.AddBoard(playerTwoBoard);

                return(new KeyValuePair <Guid, Guid>(playerOneBoard.BoardId, playerTwoBoard.BoardId));
            }

            _logger.LogError("Data Model Validation Failed", playerOneResult.results);
            throw new ValidationModelException(
                      "Board",
                      string.Join(" , ", playerOneResult.results.Select(x => x.ErrorMessage)));
        }
        public async Task <IActionResult> Post(CreateGameRequest request)
        {
            var result = await _service.CreateGame(request);

            if (!result.Equals(default(KeyValuePair <Guid, Guid>)))
            {
                _logger.LogInformation("Game Created", request);
                return(Created("CreateGame", new
                {
                    BoardOneId = result.Key,
                    BoardTwoId = result.Value
                }));
            }
            else
            {
                _logger.LogError("Error Created Game", request);
                return(new StatusCodeResult(409));
            }
        }