public SudokumbController(IGameBoardQueue gameBoardQueue,
                           AdminSettings adminSettings,
                           SolveStateStore solveStateStore)
 {
     _gameBoardQueue  = gameBoardQueue;
     _adminSettings   = adminSettings;
     _solveStateStore = solveStateStore;
 }
        public static async Task <string> StartSolving(
            this IGameBoardQueue queue, GameBoard gameBoard,
            CancellationToken cancellationToken)
        {
            // Create a new request and publish it to pubsub.
            string solveRequestId = Guid.NewGuid().ToString();
            await queue.Publish(solveRequestId, new[] { gameBoard },
                                cancellationToken);

            return(solveRequestId);
        }