public void StemAll(object ownerViewModel, StemmingMethod method)
{
if (method == StemmingMethod.Automatic)
{
foreach (Variety variety in _projectService.Project.Varieties)
variety.Affixes.Clear();
}
var pipeline = new MultiThreadedPipeline<Variety>(GetStemProcessors(method));
var progressVM = new ProgressViewModel(pvm =>
{
pvm.Text = "Stemming all varieties...";
pipeline.Process(_projectService.Project.Varieties);
while (!pipeline.WaitForComplete(100))
{
if (pvm.Canceled)
{
pipeline.Cancel();
pipeline.WaitForComplete();
}
}
}, false, true);
pipeline.ProgressUpdated += (sender, e) => progressVM.Value = e.PercentCompleted;
_dialogService.ShowModalDialog(ownerViewModel, progressVM);
Messenger.Default.Send(new DomainModelChangedMessage(true));
}