private static void RemoveReference(IExperiment experiment, Core.PackageSystem.PackageReference packageReference) { if (experiment.References.Contains(packageReference)) { experiment.References.Remove(packageReference); RemoveReferenceFromScopes(experiment, packageReference); } }
private static void AddReference(IExperiment experiment, Core.PackageSystem.PackageReference packageReference) { if (!experiment.References.Contains(packageReference)) { experiment.References.Add(packageReference); AddReferenceToScopes(experiment, packageReference); } }
private static void RemoveReferenceFromScopes(IExperiment experiment, Core.PackageSystem.PackageReference packageReference) { foreach (ExperimentNode node in experiment.Vertices) { ScopeNodeBase scopeNode = node as ScopeNodeBase; if (scopeNode != null) { var subgraph = scopeNode.CompositeComponentMetadata.ComponentGraph; if (subgraph.References.Contains(packageReference)) { subgraph.References.Remove(packageReference); } } } }