Example #1
0
        private void Run()
        {
            if (StartController == null)
            {
                return;
            }

            var savedHighlights = _tree.HighlightedNodes;

            var settings     = CreateSettings();
            var solver       = Tabs[_selectedTabIndex].CreateSolver(settings);
            var controllerVm = new ControllerViewModel(solver, Tabs[_selectedTabIndex].DisplayName, _tree);

            controllerVm.StartSolverAsync();
            // Kinda crude, but I'm not going to write a framework for a few popups.
            StartController.Raise(this, new StartControllerEventArgs(controllerVm));

            if (controllerVm.Result == true)
            {
                _tree.SkilledNodes = new HashSet <ushort>(controllerVm.BestSoFar);
            }
            _tree.HighlightedNodes = savedHighlights;
            _tree.DrawTreeComparisonHighlight();
            _tree.DrawHighlights();
            _tree.UpdateAvailNodes();

            RunFinished.Raise(this);
        }
        public async Task RunAsync()
        {
            var savedHighlights = _tree.HighlightedNodes;

            var settings = CreateSettings();
            var solver   = Tabs[_selectedTabIndex].CreateSolver(settings);

            var controllerResult = await _dialogCoordinator
                                   .ShowControllerDialogAsync(this, solver, Tabs[_selectedTabIndex].DisplayName, _tree);

            if (controllerResult != null)
            {
                _tree.SkilledNodes = new HashSet <ushort>(controllerResult);
            }
            _tree.HighlightedNodes = savedHighlights;
            _tree.DrawTreeComparisonHighlight();
            _tree.DrawHighlights();
            _tree.UpdateAvailNodes();

            RunFinished.Raise(this);
        }