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)); } }