private void ListBox_SelectedIndexChanged(object sender, RoutedEventArgs e)//event of researcher list { //disable 'showname'btn,'cumulative count'btn and datagrid before user select a record btn1.IsEnabled = true; btn2.IsEnabled = true; datagrid1.IsEnabled = true; list2.ItemsSource = P_list; //r_details.GotFocus = true; //filter function bug here if (list1.SelectedIndex != -1) //if user selected a listitem and use filter function,application will be crushed { BitmapImage b = new BitmapImage(); //Generate avatar b.BeginInit(); b.UriSource = new Uri(@rlist[list1.SelectedIndex].photo.ToString()); b.EndInit(); avatar.Source = b; //show details of specific researcher ContentControl1.Content = ResearcherDetail.showdetail(rlist[list1.SelectedIndex].id, rlist, position_list, researcher_publication_list, publication_list, btn1); datagrid1.ItemsSource = null; //reset datagrid tbk_name.Text = ""; //reset show name global_id = rlist[list1.SelectedIndex].id;//set grobal value for id P_list = PublicationList.generate_P_list(rlist[list1.SelectedIndex].id, researcher_publication_list, publication_list); Orgin_list = P_list; list2.ItemsSource = P_list; list2.Items.Refresh(); tab_m.SelectedIndex = 1;//auto jump to tab 2 } }
public static string Pdetail(string doi, List <database.publication> publication_list) { //Use LINQ to find specific researcher IEnumerable <database.publication> PublicationQuery = from publication in publication_list where publication.doi == doi select publication; //-- string content = ""; foreach (database.publication publication in PublicationQuery) { content += "DOI: " + doi + "\r\n"; content += "Title: " + publication.title + "\r\n"; content += "Authors: " + publication.authors + "\r\n"; content += "Publication year: " + publication.year + "\r\n"; content += "Type: " + publication.type + "\r\n"; content += "Cite as: " + publication.cite_as + "\r\n"; content += "Availability date: " + ResearcherDetail.time_convert(publication.available).ToShortDateString() + "\r\n"; content += "Age: " + DateTime.Now.Subtract(ResearcherDetail.time_convert(publication.available)).Days.ToString() + " days\r\n"; } return(content); }
private void btn2_Click(object sender, RoutedEventArgs e) { ResearcherDetail.cumulative(global_id, rlist, publication_list, researcher_publication_list, datagrid1); }
private void Button_Click(object sender, RoutedEventArgs e) { tbk_name.Text = ResearcherDetail.showname(global_id, rlist); }
public static void researcher_report(int ID, List <database.researcher> rlist, List <database.publication> publication_list, List <database.researcher_publication> researcher_publication_list, DataGrid datagrid1, DataGrid datagrid2, DataGrid datagrid3, DataGrid datagrid4)//cumulative { //LINQ statement IEnumerable <database.researcher> ResearcherQuery = from researcher in rlist select researcher; DataTable dt = new DataTable(); dt.Columns.Add("Performance Metric"); dt.Columns.Add("Performance"); dt.Columns.Add("Researcher"); dt.Columns.Add("Email"); DataTable dt2 = new DataTable(); dt2.Columns.Add("Performance Metric"); dt2.Columns.Add("Performance"); dt2.Columns.Add("Researcher"); dt2.Columns.Add("Email"); DataTable dt3 = new DataTable(); dt3.Columns.Add("Performance Metric"); dt3.Columns.Add("Performance"); dt3.Columns.Add("Researcher"); dt3.Columns.Add("Email"); DataTable dt4 = new DataTable(); dt4.Columns.Add("Performance Metric"); dt4.Columns.Add("Performance"); dt4.Columns.Add("Researcher"); dt4.Columns.Add("Email"); DataRow[,] dra = new DataRow[4, 3000]; int i = 0; foreach (database.researcher researcher in ResearcherQuery) { if (researcher.type == "Staff") { double threeavg = ResearcherDetail.threeyear_avg(researcher.id, researcher_publication_list, publication_list); double perdata = ResearcherDetail.performance(threeavg, researcher.level); // string permetric = perfomance_convert(perdata); dra[0, i] = dt.NewRow(); dra[1, i] = dt2.NewRow(); dra[2, i] = dt3.NewRow(); dra[3, i] = dt4.NewRow(); if (perdata >= 200) { datagrid1.ItemsSource = dt.DefaultView; dra[0, i]["Researcher"] = researcher.first_name + " " + researcher.last_name; dra[0, i]["Performance Metric"] = "Star Performance"; dra[0, i]["Performance"] = perdata + "%"; dra[0, i]["Email"] = researcher.email; dt.Rows.Add(dra[0, i]); //datagrid1.Columns[1].SortDirection.Value = "Descending"; } else if (perdata >= 110 && perdata < 200) { datagrid2.ItemsSource = dt2.DefaultView; dra[1, i]["Researcher"] = researcher.first_name + " " + researcher.last_name; dra[1, i]["Performance Metric"] = "Meeting Minimum"; dra[1, i]["Performance"] = perdata + "%"; dra[1, i]["Email"] = researcher.email; dt2.Rows.Add(dra[1, i]); } else if (perdata >= 70 && perdata < 110) { datagrid3.ItemsSource = dt3.DefaultView; dra[2, i]["Researcher"] = researcher.first_name + " " + researcher.last_name; dra[2, i]["Performance Metric"] = "Below Expertation"; dra[2, i]["Performance"] = perdata + "%"; dra[2, i]["Email"] = researcher.email; dt3.Rows.Add(dra[2, i]); } else if (perdata >= 0 && perdata < 70) { datagrid4.ItemsSource = dt4.DefaultView; dra[3, i]["Researcher"] = researcher.first_name + " " + researcher.last_name; dra[3, i]["Performance Metric"] = "Poor"; dra[3, i]["Performance"] = perdata + "%"; dra[3, i]["Email"] = researcher.email; dt4.Rows.Add(dra[3, i]); } else { MessageBox.Show("Error"); } i++; } } }