public ApiParseableProperty(Expression <Func <T, string> > expr, ElementLevel level, string path, string attribute) { Expr = expr; Path = path; Level = level; AttributeName = attribute; }
private bool TryGetElementLevel(out ElementLevel level) { level = default(ElementLevel); if (TheObject is Mono.Cecil.AssemblyDefinition || TheObject is Mono.Cecil.AssemblyNameReference) { level = ElementLevel.Assembly; return(true); } if (TheObject is Mono.Cecil.ModuleDefinition || TheObject is Mono.Cecil.ModuleReference) { level = ElementLevel.Module; return(true); } if (TheObject is Mono.Cecil.TypeDefinition || TheObject is Mono.Cecil.TypeReference) { level = ElementLevel.Type; return(true); } if (TheObject is Mono.Cecil.IMemberDefinition || TheObject is Mono.Cecil.MemberReference) { level = ElementLevel.Member; return(true); } return(false); }
protected override bool HasLevel(FrameworkElement e, ElementLevel level) { if (e.Tag is not string tag || string.IsNullOrWhiteSpace(tag)) { return(base.HasLevel(e, level)); } tag = tag.ToLower(); return(level switch { ElementLevel.Specification => tag[0] == 'n' || base.HasLevel(e, level), ElementLevel.Mandatory => tag[0] == 'o' || base.HasLevel(e, level), _ => base.HasLevel(e, level) });
public string GetXmlValue(XDocument doc, ElementLevel level, string path, string attributeName) { // Get namespaces var ns = doc.Root.GetDefaultNamespace(); var prefix = doc.Root.GetNamespaceOfPrefix("dxp"); var gaPrefix = doc.Root.GetNamespaceOfPrefix("ga"); if (level == ElementLevel.FeedLevel) { return(GetXmlTopValue(doc, path)); } // Elementlevel is entry level var nodes = doc.Root.Descendants(ns + "entry"); var value = ""; foreach (var node in nodes) { // Try finding properties first var xmlNode = node.Elements(prefix + "property") .Where(x => x.Attribute("name").Value.ToLower() == path.ToLower()); // Then metrics if (xmlNode.Any() == false) { xmlNode = node.Elements(prefix + "metric") .Where(x => x.Attribute("name").Value.ToLower() == path.ToLower()); } // Then dimensions if (xmlNode.Any() == false) { xmlNode = node.Elements(prefix + "dimension") .Where(x => x.Attribute("name").Value.ToLower() == path.ToLower()); } if (xmlNode.Any() == false) { return(string.Empty); } value = xmlNode.First().Attribute(attributeName).Value; } return(value); }
public ObjectViewModel(string name, object theObject, Type type, ImageSource icon, Brush valueColor, ElementLevel lastElementLevel) { this.icon = icon; Name = name; TheObject = theObject; elementLevel = lastElementLevel; ElementLevel level; if (TryGetElementLevel(out level)) { elementLevel = level; IsHigherElementLevel = elementLevel < lastElementLevel; } Type = FormatType(type); if (TheObject != null && TheObject.GetType() != type) { Type += " {" + FormatType(TheObject.GetType()) + "}"; if (typeof(Mono.Cecil.MemberReference).IsAssignableFrom(type) && typeof(Mono.Cecil.IMemberDefinition).IsAssignableFrom(TheObject.GetType())) { IsDefinitionForReference = true; } } SetValue(); if (valueColor != null) { ValueColor = valueColor; } if (IsDefinitionForReference) { ValueColor = Brushes.Green; } if (IsHigherElementLevel) { ValueColor = Brushes.DarkViolet; } LazyLoading = canLoadChildren; }
public void Map(Expression <Func <T, string> > exp, string path, ElementLevel level, string attribute = "value") { ParseMap.Add(new ApiParseableProperty <T>(exp, level, path, attribute)); }
public ElementInfo(string name, Type type, ElementLevel level) { Name = name; Type = type; Level = level; }