Ejemplo n.º 1
0
        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()));
        }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
 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);
 }