private void RemoveContentItem(ElementRemovingContext context) { var element = (PlaceableContentItem)context.Element; var contentItemId = element.ContentItemId; // Only remove the content item if no other elements are referencing this one. // This can happen if the user cut an element and then pasted it back. // That will delete the initial element and create a copy. var placeableElements = from e in context.Elements.Flatten() let p = e as PlaceableContentItem where p != null && p.ContentItemId == contentItemId select p; if (placeableElements.Any()) { return; } var contentItem = contentItemId != null?_contentManager.Value.Get(contentItemId.Value, VersionOptions.Latest) : default(ContentItem); if (contentItem != null) { _contentManager.Value.Remove(contentItem); } }
public void Removing(LayoutSavingContext context) { var elements = context.RemovedElements.Flatten().ToList(); foreach (var element in elements) { var removingContext = new ElementRemovingContext(element, context.Elements, context.RemovedElements, context.Content); _elementEventHandler.Removing(removingContext); element.Descriptor.Removing(removingContext); } }
public virtual void Removing(ElementRemovingContext context) { }
public override void Removing(ElementRemovingContext context) { InvokeDrivers(context.Element, driver => driver.Removing(context)); }
protected virtual void OnRemoving(TElement element, ElementRemovingContext context) { }
public void Removing(ElementRemovingContext context) { OnRemoving((TElement)context.Element, context); }
void IElementEventHandler.Removing(ElementRemovingContext context) { }