Ejemplo n.º 1
0
 private void AddAnonymousItem(Queue <string> nameParts, U item)
 {
     if (nameParts.Count == 0)
     {
         AnonymousItems.Add(item);
         if (OnItemAdded != null)
         {
             OnItemAdded(null, item);
         }
     }
     else
     {
         var first = nameParts.Dequeue();
         if (!Subnodes.ContainsKey(first))
         {
             throw new UriTreeException(
                       String.Format(
                           "Could not add item '{0}' to group with full name '{1}'; " +
                           "missing intermediate node with name '{2}'. Consider using InsertItem instead.",
                           item, FullName, first
                           )
                       );
         }
         Subnodes[first].AddAnonymousItem(nameParts, item);
     }
 }
Ejemplo n.º 2
0
 private void InsertAnonymousItem <NodeType>(Queue <string> nameParts, U item)
     where NodeType : UriTreeMutableGroup <T, U>
 {
     if (nameParts.Count == 0)
     {
         AnonymousItems.Add(item);
         if (OnItemAdded != null)
         {
             OnItemAdded(null, item);
         }
     }
     else
     {
         var first = nameParts.Dequeue();
         if (!Subnodes.ContainsKey(first))
         {
             var newNode = (T)Activator.CreateInstance(typeof(NodeType), first);
             newNode.SetParent((T)this);
         }
         Subnodes[first].InsertAnonymousItem <NodeType>(nameParts, item);
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Add an anonymous item to this group.
 /// </summary>
 /// <param name="item"></param>
 public void AddAnonymousItem(U item)
 {
     AnonymousItems.Add(item);
 }