Beispiel #1
0
        public List <ListItem> Rebuild()
        {
            LoggerFacade.Debug("ListBuilder rebuild initialised");
            int             i       = 0;
            List <ListItem> newlist = new List <ListItem>();

            while (i <= this._lastindex)
            {
                ListItem staticitem;
                if (this._staticitems.TryGetValue(i, out staticitem) == true)
                {
                    newlist.Add(staticitem);
                    i++;
                    continue;
                }

                QueryPriorityList qlist;
                if (this._querylists.TryGetValue(i, out qlist) == true)
                {
                    qlist.ProcessAllQueries();
                    ResultWrangler wrangler = qlist.GetResultWrangler();
                    if (wrangler != null)
                    {
                        List <KeyValueTreeNode> kvlist = wrangler.GetKeyValueTree();
                        foreach (KeyValueTreeNode node in kvlist)
                        {
                            //ListItem newoption = new ListItem(node.Value.Key, node.Value.Value, this._parent.ControlFormatting, this._parent, this._director);
                            newlist.Add(this.CreateItem(node));
                        }
                    }
                    i++;
                    continue;
                }
                i++;
            }

            if (this._parent.Sort)
            {
                newlist.Sort();
                foreach (ListItem item in newlist)
                {
                    item.Sort();
                }
            }
            this.Items = newlist;

            LoggerFacade.Debug("ListBuilder rebuild finished");
            return(newlist);
        }