Exemplo n.º 1
0
        private static string ConstructHierarchyName(NamedElementSchema element)
        {
            StringBuilder nameBuilder = new StringBuilder();

            nameBuilder.Insert(0, element.Name);
            nameBuilder.Insert(0, @":");
            nameBuilder.Insert(0, element.GetType().Name);
            var parent = DomainClassInfo.FindEmbeddingElement(element);

            while (parent != null && parent is NamedElementSchema)
            {
                var namedParent = (NamedElementSchema)parent;
                nameBuilder.Insert(0, @".");
                nameBuilder.Insert(0, namedParent.Name);
                nameBuilder.Insert(0, @":");
                nameBuilder.Insert(0, namedParent.GetType().Name);

                parent = DomainClassInfo.FindEmbeddingElement(parent);
            }

            return(nameBuilder.ToString());
        }
 /// <summary>
 /// Returns the first ancestor customizable element that has a customization value.
 /// </summary>
 /// <param name="element"></param>
 /// <returns></returns>
 public static CustomizableElementSchema FindYoungestNonInheritingAncestor(this CustomizableElementSchema element)
 {
     return(element.Traverse(
                c => DomainClassInfo.FindEmbeddingElement(c) as CustomizableElementSchema,
                c => c == null || c.IsCustomizable != CustomizationState.Inherited));
 }