예제 #1
0
        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
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
 private void btn2_Click(object sender, RoutedEventArgs e)
 {
     ResearcherDetail.cumulative(global_id, rlist, publication_list, researcher_publication_list, datagrid1);
 }
예제 #4
0
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     tbk_name.Text = ResearcherDetail.showname(global_id, rlist);
 }
예제 #5
0
        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++;
                }
            }
        }