private void ObserveModuleStateSelectedEvidenceSource(object _) { var evidenceSourceViewModel = _moduleState.SelectedEvidenceSource.MatchUnsafe( es => EvidenceSourceViewModels.Find(vm => vm.ID == es.ID).AssertSome(), default(IEvidenceSourceViewModel) ); SelectedEvidenceSourceViewModel = evidenceSourceViewModel; PopulateObservations(); }
private void HandleDeleteEvidenceSource() { using (_reactiveSafeInvoke.SuspendedReactivity) { RequireNotNull(SelectedEvidenceSourceViewModel); SelectedObservationsViewModel = default; ObservationsViewModels = default; var id = SelectedEvidenceSourceViewModel.ID; SelectedEvidenceSourceViewModel = default; var observations = _evidence.GetObservations(id); var references = observations.Map(o => _evidence.GetReference(o)); _evidence.RemoveEvidenceSource(id); var index = EvidenceSourceViewModels.FindIndex(vm => vm.ID == id); RequireTrue(index.IsFound()); EvidenceSourceViewModels.RemoveAt(index); _sharedState.UnshareObservationsState(references); } }