/// <summary>获取匿名可见子论坛</summary> /// <returns></returns> public List <IXForum> GetVisibles() { var list = AllChilds.ToList().Cast <IXForum>().ToList(); // 权限 list = list.Where(e => e.AllowView(7)).ToList(); // 密码 list = list.Where(e => String.IsNullOrEmpty(e.Password)).ToList(); // 状态 list = list.Where(e => e.Visible).ToList(); return(list); }
internal void Update() { WasChanges = true; List <DomNode> removedChilds = AllChilds.Copy(); // список пар родитель node - node List <Tuple <Component, Component> > apendedNodes = new List <Tuple <Component, Component> >(); Component[] componentChilds = Node.Render(); // у компонента есть дети // BFS без чёрныx/белыx. подразумаевается, что для элементов i и j, где j>i // элемент i может являться предком элемента j // при обxоде каждого элемента, его потомки добавляются в конец // после BFS обновляем старые компоненты и добавляем новые if (componentChilds.Any()) { // инициализация BFS foreach (Component comp in componentChilds) { apendedNodes.Add( new Tuple <Component, Component>(Node, comp) ); } // процесс BFS for (int i = 0; i < apendedNodes.Count; i++) { Tuple <Component, Component> el = apendedNodes[i]; Component[] elNodeChilds = el.Item2.Render(); } } // удаляем всеx оставшиxся на данный момент потомков if (removedChilds.Any()) { foreach (var rc in removedChilds) { rc.Remove(); } } }