예제 #1
0
        private void LoadTab()
        {
            Tags               = new List <CItem>();
            Authors            = new List <CItem>();
            Years              = new List <CItem>();
            Institutions       = new List <CItem>();
            JournalConferences = new List <CItem>();
            Projects           = new List <CItem>();
            foreach (CLiterature literature in G.glb.lstLiterature)
            {
                // By Tag
                List <RLiteratureTag> lstTag = G.glb.lstLiteratureTag.FindAll(o => o.Title == literature.Title).ToList();
                foreach (RLiteratureTag tag in lstTag)
                {
                    if (Tags.Exists(o => o.ItemName == tag.Tag))
                    {
                        Tags[Tags.FindIndex(o => o.ItemName == tag.Tag)].ItemCount += 1;
                    }
                    else
                    {
                        Tags.Add(new CItem(tag.Tag, 1));
                    }
                }

                // By Authors
                List <RLiteratureAuthor> lstAuthor = G.glb.lstLiteratureAuthor.FindAll(o => o.Title == literature.Title).ToList();
                names names = new names();
                foreach (RLiteratureAuthor author in lstAuthor)
                {
                    if (Authors.Exists(o => o.ItemName == names.processLastName(author.Author)))
                    {
                        Authors[Authors.FindIndex(o => o.ItemName == names.processLastName(author.Author))].ItemCount += 1;
                    }
                    else
                    {
                        Authors.Add(new CItem(names.processLastName(author.Author), 1));
                    }
                }

                // By Institute
                List <RLiteratureInstitution> lstInstitution = G.glb.lstLiteratureInstitution.FindAll(o => o.Title == literature.Title).ToList();
                foreach (RLiteratureInstitution insitution in lstInstitution)
                {
                    if (Institutions.Exists(o => o.ItemName == insitution.Institution))
                    {
                        Institutions[Institutions.FindIndex(o => o.ItemName == insitution.Institution)].ItemCount += 1;
                    }
                    else
                    {
                        Institutions.Add(new CItem(insitution.Institution, 1));
                    }
                }

                // By Project (Citing)
                List <RLiteratureInCiting> lstCiting = G.glb.lstLiteratureCiting.FindAll(o => o.Title == literature.Title).ToList();
                foreach (RLiteratureInCiting citing in lstCiting)
                {
                    if (Projects.Exists(o => o.ItemName == citing.TitleOfMyArticle))
                    {
                        Projects[Projects.FindIndex(o => o.ItemName == citing.TitleOfMyArticle)].ItemCount += 1;
                    }
                    else
                    {
                        Projects.Add(new CItem(citing.TitleOfMyArticle, 1));
                    }
                }

                // By Year
                if (Years.Exists(o => o.ItemName == literature.PublishYear.ToString()))
                {
                    Years[Years.FindIndex(o => o.ItemName == literature.PublishYear.ToString())].ItemCount += 1;
                }
                else
                {
                    Years.Add(new CItem(literature.PublishYear.ToString(), 1));
                }

                // By Journal/Conference
                if (JournalConferences.Exists(o => o.ItemName == literature.JournalOrConferenceName))
                {
                    JournalConferences[JournalConferences.FindIndex(o => o.ItemName == literature.JournalOrConferenceName)].ItemCount += 1;
                }
                else
                {
                    JournalConferences.Add(new CItem(literature.JournalOrConferenceName, 1));
                }
            }

            Tags = Tags.OrderBy(o => o.ItemName).ToList();
            // Tags = Tags.OrderByDescending(o => o.ItemCount).ToList();
            Authors = Authors.OrderBy(o => o.ItemName).ToList();
            // Authors = Authors.OrderByDescending(o => o.ItemCount).ToList();
            Institutions       = Institutions.OrderBy(o => o.ItemName).ToList();
            Institutions       = Institutions.OrderByDescending(o => o.ItemCount).ToList();
            Projects           = Projects.OrderBy(o => o.ItemName).ToList();
            Projects           = Projects.OrderByDescending(o => o.ItemCount).ToList();
            Years              = Years.OrderByDescending(o => Convert.ToInt16(o.ItemName)).ToList();
            JournalConferences = JournalConferences.OrderBy(o => o.ItemName).ToList();
            JournalConferences = JournalConferences.OrderByDescending(o => o.ItemCount).ToList();

            clbTag.Items.Clear();
            for (int i = 0; i < Tags.Count; i++)
            {
                clbTag.Items.Add(Tags[i].ItemName + "[" + Tags[i].ItemCount + "]");
            }
            clbAuthor.Items.Clear();
            for (int i = 0; i < Authors.Count; i++)
            {
                clbAuthor.Items.Add(Authors[i].ItemName + "[" + Authors[i].ItemCount + "]");
            }
            clbYear.Items.Clear();
            for (int i = 0; i < Years.Count; i++)
            {
                clbYear.Items.Add(Years[i].ItemName + "[" + Years[i].ItemCount + "]");
            }
            clbInstitution.Items.Clear();
            for (int i = 0; i < Institutions.Count; i++)
            {
                clbInstitution.Items.Add(Institutions[i].ItemName + "[" + Institutions[i].ItemCount + "]");
            }
            clbJournalConference.Items.Clear();
            for (int i = 0; i < JournalConferences.Count; i++)
            {
                clbJournalConference.Items.Add(JournalConferences[i].ItemName + "[" + JournalConferences[i].ItemCount + "]");
            }
            clbProject.Items.Clear();
            for (int i = 0; i < Projects.Count; i++)
            {
                clbProject.Items.Add(Projects[i].ItemName + "[" + Projects[i].ItemCount + "]");
            }
            LoadLiteratureList(loadedLiteratures);
        }
예제 #2
0
        private void LoadLiteratureList()
        {
            List <string> chosenTag               = new List <string>();
            List <string> chosenAuthor            = new List <string>();
            List <string> chosenInstitution       = new List <string>();
            List <int>    chosenYear              = new List <int>();
            List <string> chosenJournalConference = new List <string>();
            List <string> chosenProject           = new List <string>();

            for (int i = 0; i < clbTag.CheckedItems.Count; i++)
            {
                chosenTag.Add(clbTag.CheckedItems[i].ToString().Split('[').First());
            }
            for (int i = 0; i < clbAuthor.CheckedItems.Count; i++)
            {
                chosenAuthor.Add(clbAuthor.CheckedItems[i].ToString().Split('[').First());
            }
            for (int i = 0; i < clbInstitution.CheckedItems.Count; i++)
            {
                chosenInstitution.Add(clbInstitution.CheckedItems[i].ToString().Split('[').First());
            }
            for (int i = 0; i < clbYear.CheckedItems.Count; i++)
            {
                chosenYear.Add(Convert.ToInt16(clbYear.CheckedItems[i].ToString().Split('[').First()));
            }
            for (int i = 0; i < clbJournalConference.CheckedItems.Count; i++)
            {
                chosenJournalConference.Add(clbJournalConference.CheckedItems[i].ToString().Split('[').First());
            }
            for (int i = 0; i < clbProject.CheckedItems.Count; i++)
            {
                chosenProject.Add(clbProject.CheckedItems[i].ToString().Split('[').First());
            }

            List <string> ShownTitle = new List <string>();

            foreach (CLiterature literature in G.glb.lstLiterature)
            {
                if (chosenYear.Exists(o => o == literature.PublishYear))
                {
                    ShownTitle.Add(literature.Title);
                }
                if (chosenJournalConference.Exists(o => o == literature.JournalOrConferenceName))
                {
                    ShownTitle.Add(literature.Title);
                }
                if (chosenTag.Exists(o => G.glb.lstLiteratureTag.Exists(p => p.Title == literature.Title && p.Tag == o)))
                {
                    ShownTitle.Add(literature.Title);
                }
                names names = new names();
                if (chosenAuthor.Exists(o => G.glb.lstLiteratureAuthor.Exists(p => p.Title == literature.Title && names.processLastName(p.Author) == o)))
                {
                    ShownTitle.Add(literature.Title);
                }
                if (chosenInstitution.Exists(o => G.glb.lstLiteratureInstitution.Exists(p => p.Title == literature.Title && p.Institution == o)))
                {
                    ShownTitle.Add(literature.Title);
                }
                if (chosenProject.Exists(o => G.glb.lstLiteratureCiting.Exists(p => p.Title == literature.Title && p.TitleOfMyArticle == o)))
                {
                    ShownTitle.Add(literature.Title);
                }
            }
            ShownTitle        = ShownTitle.Distinct().ToList();
            loadedLiteratures = ShownTitle;
            LoadLiteratureList(loadedLiteratures);
        }