示例#1
0
        public static void CreateBookTree(TreeView tree)
        {
            XDocument xDoc = FileOPs.LoadXmlFile(form_Catalog.bookFileName);

            tree.Nodes.Clear();
            tree.Nodes.Add(new TreeNode(xDoc.Root.Name.ToString()));

            List <Book> parse         = FileOPs.ParseBookXmlToList(form_Catalog.bookFileName);
            List <Book> noDupesAuthor = parse.GroupBy(a => a.bookAuthor).Select(grp => grp.FirstOrDefault()).OrderBy(a => a.bookAuthor).ToList();

            foreach (Book nDA in noDupesAuthor)
            {
                tree.Nodes[0].Nodes.Add(nDA.bookAuthor);
                List <Book> bookSeries = parse.FindAll(x => x.bookAuthor.Equals(nDA.bookAuthor)).GroupBy(s => s.bookSeries).Select(grp => grp.FirstOrDefault()).OrderBy(s => s.bookSeries).ToList();

                foreach (var bs in bookSeries)
                {
                    tree.Nodes[0].Nodes[noDupesAuthor.IndexOf(nDA)].Nodes.Add(bs.bookSeries);
                    List <Book> bookTitle = parse.FindAll(x => x.bookAuthor.Equals(nDA.bookAuthor) && x.bookSeries.Equals(bs.bookSeries));

                    foreach (var bn in bookTitle)
                    {
                        tree.Nodes[0].Nodes[noDupesAuthor.IndexOf(nDA)].Nodes[bookSeries.IndexOf(bs)].Nodes.Add(bn.bookTitle);
                    }
                }
            }

            tree.ExpandAll();

            FileOPs.SetBookLastID();
        }
示例#2
0
        private void Catalog_Load(object sender, EventArgs e)
        {
            timer_Preview.Stop();
            FileOPs.SetBookLastID();
            FileOPs.SetFilmLastID();

            if (tc_Info.SelectedTab == tabPage_Book)
            {
                grpbox_BookInfo.Hide();
                TreeViewOPs.CreateBookTree(tw_Book);
            }
            if (tc_Info.SelectedTab == tabPage_Film)
            {
                grpbox_FilmInfo.Hide();
                TreeViewOPs.CreateFilmTree(tw_Film);
            }
        }
示例#3
0
        private void OnChanged(object source, FileSystemEventArgs e)
        {
            Thread.Sleep(10);
            Invoke((MethodInvoker) delegate
            {
                if (tc_Info.SelectedTab == tabPage_Book)
                {
                    TreeViewOPs.CreateBookTree(tw_Book);
                }
                if (tc_Info.SelectedTab == tabPage_Film)
                {
                    TreeViewOPs.CreateBookTree(tw_Film);
                }
            });

            FileOPs.SetBookLastID();
            FileOPs.SetFilmLastID();
        }