private static IEnumerable <Snippet> BuildSnippets(BindingNameReference reference, ElementNode element) { var attrs = element.Attributes.Where(attr => attr.Name == reference.Name); if (reference.AssumeStringValue) { var builder = new ExpressionBuilder(); PopulateBuilder(attrs.SelectMany(attr => attr.Nodes), builder); return(new[] { new Snippet { Value = builder.ToCode() } }); } return(attrs.SelectMany(attr => attr.AsCode())); }
private static bool RequiredReferencesSatisfied(Binding binding, ElementNode element) { foreach (BindingNameReference reference in AllNodes(binding).OfType <BindingNameReference>()) { BindingNameReference nameReference = reference; if (!element.Attributes.Any <AttributeNode>(attr => (attr.Name == nameReference.Name))) { return(false); } } if (binding.HasChildReference && element.IsEmptyElement) { return(false); } return(true); }
private static IEnumerable <Snippet> BuildSnippets(BindingNameReference reference, ElementNode element) { IEnumerable <AttributeNode> enumerable = from attr in element.Attributes where attr.Name == reference.Name select attr; if (reference.AssumeStringValue) { ExpressionBuilder builder = new ExpressionBuilder(); PopulateBuilder(from attr in enumerable select attr.Nodes, builder); Snippet[] snippetArray = new Snippet[1]; Snippet snippet = new Snippet { Value = builder.ToCode() }; snippetArray[0] = snippet; return(snippetArray); } return(from attr in enumerable select attr.AsCode()); }
private static bool TestBetterMatch(string attributeName, string matchingPrefix, BindingNode compareNode) { if (compareNode is BindingNameReference) { BindingNameReference reference = (BindingNameReference)compareNode; if (attributeName == reference.Name) { return(true); } } if (compareNode is BindingPrefixReference) { string str = matchingPrefix ?? ""; string str2 = ((BindingPrefixReference)compareNode).Prefix ?? ""; if ((str2.Length > str.Length) && attributeName.StartsWith(str2)) { return(true); } } return(false); }