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); }
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); }