SIL.Cog.Application.Services.AnalysisService.CompareAll C# (CSharp) Méthode

CompareAll() public méthode

public CompareAll ( object ownerViewModel ) : void
ownerViewModel object
Résultat void
        public void CompareAll(object ownerViewModel)
        {
            if (_projectService.Project.Varieties.Count == 0 || _projectService.Project.Meanings.Count == 0)
                return;

            Messenger.Default.Send(new PerformingComparisonMessage());
            var generator = new VarietyPairGenerator();
            generator.Process(_projectService.Project);

            var pipeline = new MultiThreadedPipeline<VarietyPair>(GetCompareProcessors());

            var progressVM = new ProgressViewModel(vm =>
                {
                    vm.Text = "Comparing all variety pairs...";
                    pipeline.Process(_projectService.Project.VarietyPairs);
                    while (!pipeline.WaitForComplete(500))
                    {
                        if (vm.Canceled)
                        {
                            pipeline.Cancel();
                            pipeline.WaitForComplete();
                            break;
                        }
                    }
                    if (vm.Canceled)
                    {
                        _projectService.Project.VarietyPairs.Clear();
                    }
                    else
                    {
                        vm.Text = "Analyzing results...";
                        Messenger.Default.Send(new ComparisonPerformedMessage());
                    }
                }, false, true);
            pipeline.ProgressUpdated += (sender, e) => progressVM.Value = e.PercentCompleted;

            _dialogService.ShowModalDialog(ownerViewModel, progressVM);
        }