protected async override Task <bool> Process()
        {
            MinesweeperWindow sweeper = new MinesweeperWindow(operationSetup);

            sweeper.ShowDialog();
            operationSuccess = sweeper.operationQuality;

            if (operationSuccess == -1)
            {
                operationSuccess = 100;
                return(false);
            }
            else
            {
                operationSuccess = operationSuccess == -1 ? 100 : (operationSuccess * 100 / 2200);
                return(true);
            }
        }
        public TMinesweeper()
        {
            //initialize the model with 10 mines
            mineField   = new MineField(10);
            soundPlayer = new SoundThread();

            //setup timer
            timer          = new Timer();
            timer.Interval = 1000; //1 sec
            timer.Tick    += TimerTick;
            timerCounter   = 0;

            //intialize view
            mainWindow = new MinesweeperWindow();
            //set up event handling
            mainWindow.ButtonPressed += OnButtonClicked;

            //run the app
            mainWindow.ShowDialog();
        }