public SimilarSegmentMappingsViewModel(IProjectService projectService, IDialogService dialogService, SegmentMappingsTableViewModel.Factory segmentMappingsTableFactory, SegmentMappingsViewModel mappings, SegmentMappingViewModel.Factory mappingFactory, SoundType soundType) { _projectService = projectService; _mappings = mappings; _mappings.PropertyChanged += ChildPropertyChanged; _soundType = soundType; _dialogService = dialogService; _segmentMappingsTableFactory = segmentMappingsTableFactory; _mappingFactory = mappingFactory; _editSegmentMappingsTableCommand = new RelayCommand(EditSegmentMappingsTable); }
private void EditSegmentMappingsTable() { SegmentMappingsTableViewModel vm = _segmentMappingsTableFactory(_mappings.Mappings, _soundType, _threshold); if (_dialogService.ShowModalDialog(this, vm) == true) { using (_mappings.Mappings.BulkUpdate()) { _mappings.Mappings.RemoveAll(m => m.IsValid); _mappings.Mappings.AddRange(vm.Segments.SelectMany(s => s.SegmentPairs).Where(sp => sp.IsEnabled) .SelectMany(sp => sp.Mappings.Mappings)); } Threshold = vm.Threshold; } }