Ejemplo n.º 1
0
 private void AddChildrenRecursively(KeyedTreeNode <TKey, IElementsProvider <TSource, TData> > pattern, TSource element)
 {
     foreach (var child in pattern.Children)
     {
         AddValuesRecursively(child, element);
     }
 }
Ejemplo n.º 2
0
        public Dictionary <TKey, List <TData> > GetValues(KeyedTreeNode <TKey, IElementProvider <TSource, TData> > pattern)
        {
            var dictionary = new Dictionary <TKey, List <TData> >();
            var helper     = new HeiarchyFlattener(dictionary);

            helper.AddValuesRecursively(pattern, source);
            return(dictionary);
        }
Ejemplo n.º 3
0
            public void AddValuesRecursively(KeyedTreeNode <TKey, IElementProvider <TSource, TData> > pattern, TSource source)
            {
                var elementProvider = pattern.Value;
                var element         = elementProvider.GetElement(source);

                if (pattern.Key != null)
                {
                    GetOrCreateList(pattern.Key).Add(elementProvider.GetValue(element));
                }
                AddChildrenRecursively(pattern, element);
            }
Ejemplo n.º 4
0
            public void AddValuesRecursively(KeyedTreeNode <TKey, IElementsProvider <TSource, TData> > pattern, TSource source)
            {
                var elementProvider = pattern.Value;
                var elements        = elementProvider.GetElements(source);

                if (pattern.Key == null)
                {
                    foreach (var element in elements)
                    {
                        AddChildrenRecursively(pattern, element);
                    }
                }
                else
                {
                    var values = GetOrCreateList(pattern.Key);
                    foreach (var element in elements)
                    {
                        values.Add(elementProvider.GetValue(element));
                        AddChildrenRecursively(pattern, element);
                    }
                }
            }
Ejemplo n.º 5
0
 public void Add(KeyedTreeNode <TKey, TValue> item)
 {
     children.Add(item);
 }