public void AddChild(string id, NotificationBaseNode child)
 {
     if (Childs.ContainsKey(id))
     {
         throw new Exception("");
     }
     Childs[id] = child;
 }
Esempio n. 2
0
 public NotificationTree(IEnumerable <ICounterId> newIds, IEnumerable <ICounterId> clearIds)
 {
     Root = new NotificationBaseNode("root", null);
     foreach (var id in newIds)
     {
         SetObjectId(id, true);
     }
     foreach (var id in clearIds)
     {
         SetObjectId(id, true);
         SetObjectId(id, false);
     }
 }
Esempio n. 3
0
 private void RecurciveFindFinished(NotificationBaseNode node, List <NotificationBaseNode> findChilds)
 {
     foreach (var child in node.Childs)
     {
         if (child.Value.IsFinished)
         {
             findChilds.Add(child.Value);
         }
         else
         {
             RecurciveFindFinished(child.Value, findChilds);
         }
     }
 }
Esempio n. 4
0
        public NotificationBaseNode TryCreateNotificationNode(ICounterId id)
        {
            var parent = Root;

            foreach (var nodeId in id.Nodes)
            {
                NotificationBaseNode child;
                if (!parent.Childs.TryGetValue(nodeId, out child))
                {
                    child = new NotificationBaseNode(nodeId, parent);
                    parent.Childs.Add(nodeId, child);
                }
                parent = child;
            }
            return(parent);
        }
        public NotificationBaseNode(string id, NotificationBaseNode parent)
        {
            Id = id;
            var list = new List <string>();

            if (parent != null)
            {
                list.Add(id);
            }
            Parent = parent;
            while (parent != null)
            {
                if (parent.Parent != null)
                {
                    list.Insert(0, parent.Id);
                }
                parent = parent.Parent;
            }
            NotifyId = new CounterId(list);
            Childs   = new Dictionary <string, NotificationBaseNode>();
        }