public async Task <IActionResult> UpdateVariety(VarietyViewModel model) { var dto = _mapper.Map <ICode>(model); var cmd = _recipeCommandFactory.CreateVarietiesCommand(); if (dto.Id == 0) { await cmd.AddAsync(dto).ConfigureAwait(false); } else { await cmd.UpdateAsync(dto).ConfigureAwait(false); } return(RedirectToAction("Index", "Admin", new { id = "varieties" })); }
private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) { var vm = (SegmentsViewModel)sender; switch (e.PropertyName) { case "Varieties": DispatcherHelper.CheckBeginInvokeOnUI(LoadCollectionView); break; case "SelectedSegment": DispatcherHelper.CheckBeginInvokeOnUI(() => { if (_selectMonitor.Busy) { return; } using (_selectMonitor.Enter()) { SegmentsDataGrid.SelectedCellRanges.Clear(); if (vm.SelectedSegment != null) { VarietyViewModel variety = vm.SelectedSegment.Variety; int itemIndex = SegmentsDataGrid.Items.IndexOf(variety); SegmentsDataGrid.BringItemIntoView(variety); SegmentsDataGrid.Dispatcher.BeginInvoke(new Action(() => { var row = (DataRow)SegmentsDataGrid.GetContainerFromIndex(itemIndex); if (row != null) { Cell cell = row.Cells.Single(c => c.DataContext == vm.SelectedSegment); SegmentsDataGrid.SelectedCellRanges.Add(new SelectionCellRange(itemIndex, cell.ParentColumn.Index)); cell.BringIntoView(); } }), DispatcherPriority.Background); } } }); break; } }
public void Varieties_SwapSelectedVarieties_AreVarietiesInOrderEqualsTrue() { using (var env = new TestEnvironment()) { AddVarietyData(env); AddComparisonData(env); env.OpenProject(); Assert.That(env.VarietyPairs.VarietyPairState, Is.EqualTo(VarietyPairState.SelectedAndCompared)); Assert.That(env.VarietyPairs.SelectedVarietyPair, Is.Not.Null); Assert.That(env.VarietyPairs.SelectedVarietyPair.AreVarietiesInOrder, Is.True); VarietyViewModel temp = env.VarietyPairs.SelectedVariety2; env.VarietyPairs.SelectedVariety2 = env.VarietyPairs.SelectedVariety1; env.VarietyPairs.SelectedVariety1 = temp; Assert.That(env.VarietyPairs.VarietyPairState, Is.EqualTo(VarietyPairState.SelectedAndCompared)); Assert.That(env.VarietyPairs.SelectedVarietyPair, Is.Not.Null); Assert.That(env.VarietyPairs.SelectedVarietyPair.AreVarietiesInOrder, Is.False); } }
public void Varieties() { DispatcherHelper.Initialize(); var segmentPool = new SegmentPool(); var projectService = Substitute.For <IProjectService>(); var dialogService = Substitute.For <IDialogService>(); var busyService = Substitute.For <IBusyService>(); var exportService = Substitute.For <IExportService>(); var analysisService = new AnalysisService(_spanFactory, segmentPool, projectService, dialogService, busyService); WordPairsViewModel.Factory wordPairsFactory = () => new WordPairsViewModel(busyService); VarietyPairViewModel.Factory varietyPairFactory = (vp, order) => new VarietyPairViewModel(segmentPool, projectService, wordPairsFactory, vp, order); var varietyPairs = new VarietyPairsViewModel(projectService, busyService, dialogService, exportService, analysisService, varietyPairFactory); CogProject project = TestHelpers.GetTestProject(_spanFactory, segmentPool); projectService.Project.Returns(project); projectService.ProjectOpened += Raise.Event(); varietyPairs.VarietiesView1 = new ListCollectionView(varietyPairs.Varieties); varietyPairs.VarietiesView2 = new ListCollectionView(varietyPairs.Varieties); Assert.That(varietyPairs.Varieties, Is.Empty); Assert.That(varietyPairs.VarietyPairState, Is.EqualTo(VarietyPairState.NotSelected)); Assert.That(varietyPairs.SelectedVariety1, Is.Null); Assert.That(varietyPairs.SelectedVariety2, Is.Null); Assert.That(varietyPairs.SelectedVarietyPair, Is.Null); project.Meanings.AddRange(new[] { new Meaning("gloss1", "cat1"), new Meaning("gloss2", "cat2"), new Meaning("gloss3", "cat3") }); project.Varieties.AddRange(new[] { new Variety("variety1"), new Variety("variety2"), new Variety("variety3") }); project.Varieties[0].Words.AddRange(new[] { new Word("hɛ.loʊ", project.Meanings[0]), new Word("gʊd", project.Meanings[1]), new Word("bæd", project.Meanings[2]) }); project.Varieties[1].Words.AddRange(new[] { new Word("hɛlp", project.Meanings[0]), new Word("gu.gəl", project.Meanings[1]), new Word("gu.fi", project.Meanings[2]) }); project.Varieties[2].Words.AddRange(new[] { new Word("wɜrd", project.Meanings[0]), new Word("kɑr", project.Meanings[1]), new Word("fʊt.bɔl", project.Meanings[2]) }); analysisService.SegmentAll(); Messenger.Default.Send(new DomainModelChangedMessage(true)); Assert.That(varietyPairs.VarietyPairState, Is.EqualTo(VarietyPairState.SelectedAndNotCompared)); Assert.That(varietyPairs.SelectedVariety1, Is.EqualTo(varietyPairs.VarietiesView1.Cast <VarietyViewModel>().First())); Assert.That(varietyPairs.SelectedVariety2, Is.EqualTo(varietyPairs.VarietiesView2.Cast <VarietyViewModel>().ElementAt(1))); Assert.That(varietyPairs.SelectedVarietyPair, Is.Null); Messenger.Default.Send(new PerformingComparisonMessage()); var varietyPairGenerator = new VarietyPairGenerator(); varietyPairGenerator.Process(project); var wordPairGenerator = new SimpleWordPairGenerator(segmentPool, project, 0.3, ComponentIdentifiers.PrimaryWordAligner); foreach (VarietyPair vp in project.VarietyPairs) { wordPairGenerator.Process(vp); vp.SoundChangeFrequencyDistribution = new ConditionalFrequencyDistribution <SoundContext, Ngram <Segment> >(); vp.SoundChangeProbabilityDistribution = new ConditionalProbabilityDistribution <SoundContext, Ngram <Segment> >(vp.SoundChangeFrequencyDistribution, (sc, fd) => new MaxLikelihoodProbabilityDistribution <Ngram <Segment> >(fd)); } Messenger.Default.Send(new ComparisonPerformedMessage()); Assert.That(varietyPairs.VarietyPairState, Is.EqualTo(VarietyPairState.SelectedAndCompared)); Assert.That(varietyPairs.SelectedVarietyPair, Is.Not.Null); Assert.That(varietyPairs.SelectedVarietyPair.AreVarietiesInOrder, Is.True); VarietyViewModel temp = varietyPairs.SelectedVariety2; varietyPairs.SelectedVariety2 = varietyPairs.SelectedVariety1; varietyPairs.SelectedVariety1 = temp; Assert.That(varietyPairs.VarietyPairState, Is.EqualTo(VarietyPairState.SelectedAndCompared)); Assert.That(varietyPairs.SelectedVarietyPair, Is.Not.Null); Assert.That(varietyPairs.SelectedVarietyPair.AreVarietiesInOrder, Is.False); Messenger.Default.Send(new DomainModelChangedMessage(true)); Assert.That(varietyPairs.VarietyPairState, Is.EqualTo(VarietyPairState.SelectedAndNotCompared)); project.Varieties.RemoveRangeAt(0, 2); Messenger.Default.Send(new DomainModelChangedMessage(true)); Assert.That(varietyPairs.VarietyPairState, Is.EqualTo(VarietyPairState.NotSelected)); Assert.That(varietyPairs.SelectedVariety1, Is.EqualTo(varietyPairs.VarietiesView1.Cast <VarietyViewModel>().First())); Assert.That(varietyPairs.SelectedVariety2, Is.EqualTo(varietyPairs.VarietiesView2.Cast <VarietyViewModel>().First())); }