public void Register(int referencedItemID, Action<ContentItem> action, bool isChild = false, string relationType = null, ContentItem referencingItem = null) { var resolver = new UnresolvedLink(referencedItemID, action) { IsChild = isChild, RelationType = relationType, ReferencingItem = referencingItem }; UnresolvedLinks.Add(resolver); EventHandler<ItemEventArgs> handler = null; handler = delegate(object sender, ItemEventArgs e) { if (e.AffectedItem.ID == referencedItemID || e.AffectedItem.VersionOf.ID == referencedItemID) { resolver.Setter(e.AffectedItem); UnresolvedLinks.Remove(resolver); ItemAdded -= handler; } }; ItemAdded += handler; }
public void Register(string versionKey, Action<ContentItem> action, bool isChild = false) { var resolver = new UnresolvedLink(versionKey, action) { IsChild = isChild }; UnresolvedLinks.Add(resolver); EventHandler<ItemEventArgs> handler = null; handler = delegate(object sender, ItemEventArgs e) { if (e.AffectedItem.GetVersionKey() == versionKey) { resolver.Setter(e.AffectedItem); UnresolvedLinks.Remove(resolver); ItemAdded -= handler; } }; ItemAdded += handler; }