/// <summary>Get first ancestor. Optionally, include self.</summary> /// <remarks>Extension method.</remarks> public static DynamicNode GetFirstAncestor(this DynamicNode cmsItem, string nodeTypeAlias, string pageName, bool includeSelf = false) { IList<DynamicNode> cmsItems = null; if(cmsItem != null) { if(includeSelf) { cmsItems = cmsItem.AncestorsOrSelf(nodeTypeAlias).Items; } else { cmsItems = cmsItem.Ancestors(nodeTypeAlias).Items; } return cmsItems.Where(x => x.Name == pageName).FirstOrDefault(); } return null; }
internal static IEnumerable<IPublishedContent> AncestorsOrSelf(this IPublishedContent content, int level) { return content.AncestorsOrSelf(n => n.Level <= level); }
public static IEnumerable<IPublishedContent> AncestorsOrSelf(this IPublishedContent content, string nodeTypeAlias) { return content.AncestorsOrSelf(n => n.DocumentTypeAlias == nodeTypeAlias); }
public static IEnumerable<IPublishedContent> AncestorsOrSelf(this IPublishedContent content) { return content.AncestorsOrSelf(n => true); }
public static HtmlString IsDescendantOrSelf(this IPublishedContent content, DynamicPublishedContent other, string valueIfTrue, string valueIfFalse) { var ancestors = content.AncestorsOrSelf(); return content.IsHelper(n => ancestors.FirstOrDefault(ancestor => ancestor.Id == other.Id) != null, valueIfTrue, valueIfFalse); }
public static bool IsDescendantOrSelf(this IPublishedContent content, IPublishedContent other) { var ancestors = content.AncestorsOrSelf(); return content.IsHelper(n => ancestors.FirstOrDefault(ancestor => ancestor.Id == other.Id) != null); }
/// <summary> /// Gets the ancestors or self of the current Content entity relationships /// </summary> /// <param name="collection"></param> /// <returns></returns> public static IEnumerable<File> AncestorsOrSelfAsFile(this EntityRelationCollection collection) { Mandate.ParameterNotNull(collection, "collection"); return collection.AncestorsOrSelf<File>(FixedRelationTypes.FileRelationType); }