internal void RemoveReference(ContentItemViewModelReference contentItem, PackageViewModel package) { List <PackageReference> packages; if (!_references.TryGetValue(contentItem.ContentItem, out packages)) { throw new InvalidOperationException(); } if (!packages.RemoveFirst(p => p.Package == package)) { throw new InvalidOperationException(); } // Remove empty lists if (packages.Count == 0) { _references.Remove(contentItem.ContentItem); } // Notify if (ReferenceRemoved != null) { ReferenceRemoved(this, new ReferenceArgs() { ContentItem = contentItem, Package = package }); } }
internal void AddReference(ContentItemViewModelReference contentItem, PackageViewModel package) { List <PackageReference> packages; if (!_references.TryGetValue(contentItem.ContentItem, out packages)) { packages = new List <PackageReference>(); _references.Add(contentItem.ContentItem, packages); } packages.Add(new PackageReference { IsExplicit = contentItem.IsExplicit, Package = package }); // Notify if (ReferenceAdded != null) { ReferenceAdded(this, new ReferenceArgs() { ContentItem = contentItem, Package = package }); } }