private void AddChildrenRecursively(KeyedTreeNode <TKey, IElementsProvider <TSource, TData> > pattern, TSource element) { foreach (var child in pattern.Children) { AddValuesRecursively(child, element); } }
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); }
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); }
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); } } }
public void Add(KeyedTreeNode <TKey, TValue> item) { children.Add(item); }