Exemple #1
0
        private void ShowLineGraph()
        {
            cartesianChart1.AxisX.Clear();
            cartesianChart1.AxisY.Clear();
            DateTime now    = DateTime.Now;
            var      labels = new List <string>();

            for (DateTime itime = now.AddMinutes(-chartRangeMinute); itime.TimeOfDay <= now.TimeOfDay; itime = itime.AddMinutes(1))
            {
                labels.Add(itime.ToShortTimeString());
            }
            cartesianChart1.AxisX.Add(new LiveCharts.Wpf.Axis
            {
                Title  = "Time",
                Labels = labels
            });

            cartesianChart1.Zoom = ZoomingOptions.X;


            cartesianChart1.AxisY.Add(new Axis
            {
                Title = "Speaking Time[s/minute]"
            });
            cartesianChart1.AxisY[0].MinValue = 0;
            cartesianChart1.LegendLocation    = LiveCharts.LegendLocation.Right;
            cartesianChart1.Series            = lineseries;


            using (WorkshopEntities7 db = new WorkshopEntities7())
            {/*
              * var data = db.voicerecords;
              *
              * var users = (from o in data orderby o.username select o.username).Distinct();
              *
              * SeriesCollection series = new SeriesCollection();
              *
              * foreach (var user in users)
              * {
              *
              *     LineSeries line = new LineSeries()
              *     {
              *         Title = user.ToString(),
              *         DataLabels = false,
              *         Values = new ChartValues<double>(),
              *         //Values=userdatas.AsChartValues()
              *     };
              *
              *     //line.Values.Add(userdatas);
              *     //line.Values = data.Where(a => a.username == user).Where(a=>a.Date>itime).OrderBy(a => a.Date).Select(a=>a.time);
              *
              *
              *
              *     for (DateTime itime = now.AddMinutes(-chartRangeMinute); itime < now; itime = itime.AddMinutes(1))
              *     {
              *         double vv = 0;
              *         //var ruleDate = Convert.ToDateTime(itime).TimeOfDay;
              *
              *
              *         var userdatas = from oo in data
              *                         where SqlFunctions.DatePart("minute", oo.Date)== SqlFunctions.DatePart("minute", itime)
              *                         && oo.username.Equals(user)
              *                         && SqlFunctions.DatePart("hour", oo.Date) == SqlFunctions.DatePart("hour", itime)
              *                         && oo.time<60
              *                         //orderby oo.Date ascending
              *                         select  oo.time ;
              *
              *         Console.WriteLine(itime.ToShortTimeString());
              *
              *         if (userdatas.FirstOrDefault() != null)
              *         {
              *             vv = (double)userdatas.FirstOrDefault();
              *         }
              *         line.Values.Add(vv);
              *     }
              *
              *     series.Add(line);
              * }
              *
              * cartesianChart1.Series = series;*/
            }
        }
Exemple #2
0
        private void ShowColumnGraph(SeriesCollection columnseries)
        {
            cartesianChart2.AxisX.Clear();
            cartesianChart2.AxisY.Clear();
            DateTime now          = DateTime.Now;
            var      columnlabels = new List <string>();

            cartesianChart2.AxisX.Add(new LiveCharts.Wpf.Axis
            {
                Title  = "",
                Labels = columnlabels
            });

            cartesianChart2.AxisY.Add(new Axis
            {
                Title = "Total Speaking Time[s]"
                        //LabelFormatter = value => value.ToString(),
            });
            cartesianChart2.AxisY[0].MinValue = 0;
            cartesianChart2.LegendLocation    = LiveCharts.LegendLocation.Right;

            using (WorkshopEntities7 db = new WorkshopEntities7())
            {
                if (selectedgroup == "Adults")
                {
                    var data  = db.Adults;
                    var users = (from o in data orderby o.username select o.username).Distinct();

                    foreach (var user in users)
                    {
                        columnlabels.Add(user.ToString());
                    }
                }
                else if (selectedgroup == "Students")
                {
                    var data  = db.Students;
                    var users = (from o in data orderby o.username select o.username).Distinct();

                    foreach (var user in users)
                    {
                        columnlabels.Add(user.ToString());
                    }
                }
                else
                {
                    var data  = db.voicerecords;
                    var users = (from o in data orderby o.username select o.username).Distinct();

                    foreach (var user in users)
                    {
                        columnlabels.Add(user.ToString());
                    }
                }
            }
            cartesianChart2.Series = columnseries;

            //using (TestEntities1 db = new TestEntities1())



            using (WorkshopEntities7 db = new WorkshopEntities7())
            {/*
              * var data = db.voicerecords;
              * var users = (from o in data orderby o.username select o.username).Distinct();
              *
              *
              * ColumnSeries column = new ColumnSeries()
              * {
              *     Title = now.AddMinutes(-chartRangeMinute).ToShortTimeString() + "~" + now.AddMinutes(-chartRangeMinute / 2).ToShortTimeString(),
              *
              *     DataLabels = false,
              *     Values = new ChartValues<double>(),
              *
              * };
              * ColumnSeries column2 = new ColumnSeries()
              * {
              *     Title = now.AddMinutes(-chartRangeMinute / 2).ToShortTimeString() + "~" + now.ToShortTimeString(),
              *
              *     DataLabels = false,
              *     Values = new ChartValues<double>(),
              *
              * };
              *
              *
              * foreach (var user in users)
              * {
              *
              *     columnlabels.Add(user.ToString());
              *
              *     double totalseconds1 = 5;
              *     double totalseconds2 = 5;
              *
              *     for (DateTime itime = now.AddMinutes(-chartRangeMinute); itime < now; itime = itime.AddMinutes(1))
              *     {
              *         double v1 = 0;
              *         var ruleDate = Convert.ToDateTime(itime).TimeOfDay;
              *
              *         var userdatas = from oo in data
              *                         where SqlFunctions.DatePart("minute", oo.Date) == SqlFunctions.DatePart("minute", itime)
              *                         && oo.username.Equals(user)
              *                         && SqlFunctions.DatePart("hour", oo.Date) == SqlFunctions.DatePart("hour", itime)
              *                         && oo.time < 60
              *                         select oo.time;
              *
              *         if (userdatas.FirstOrDefault() != null) //changed from SingleOrDefault
              *         {
              *             v1 = (double)userdatas.FirstOrDefault();
              *
              *         }
              *
              *         if (itime.TimeOfDay < now.AddMinutes(-chartRangeMinute/2).TimeOfDay)
              *         {
              *             totalseconds1 = totalseconds1 + v1;
              *         }
              *         else
              *         {
              *             totalseconds2 = totalseconds2 + v1;
              *         }
              *         Console.WriteLine(itime);
              *
              *     }
              *
              *     column.Values.Add(totalseconds1);
              *     column2.Values.Add(totalseconds2);
              *
              * }
              * columnseries.Add(column);
              * columnseries.Add(column2);
              *
              */
            }
        }
Exemple #3
0
        private void UpdateLineGraph()
        {
            DateTime now = DateTime.Now;

            cartesianChart1.AxisX[0].Labels.Add(now.ToShortTimeString());

            SeriesCollection lineseries2 = new SeriesCollection();

            using (WorkshopEntities7 db = new WorkshopEntities7())
            {
                if (selectedgroup == "Adults")
                {
                    var data        = db.Adults;
                    var users       = (from o in data orderby o.username select o.username).Distinct(); //fuking retard code
                    int lineCounter = 0;

                    if (users.Count() != cartesianChart1.Series.Count()) //in case new one's data added after running ShowLingraph
                    {                                                    //conflict between number of users and number of Series occur
                        lineseries2.Clear();
                        GetTableData();
                        ShowLineGraph();
                        return;
                    }

                    foreach (var user in users)
                    {
                        var    iValues     = cartesianChart1.Series[lineCounter].Values;
                        double latestvalue = 0;

                        var userdatas = from oo in data
                                        where oo.username.Equals(user) &&
                                        (60 * SqlFunctions.DatePart("hour", oo.Date)) + (SqlFunctions.DatePart("minute", oo.Date))
                                        == (60 * SqlFunctions.DatePart("hour", now)) + (SqlFunctions.DatePart("minute", now)) &&
                                        oo.time < 60
                                        select new { oo.time, oo.Date };

                        if (userdatas.FirstOrDefault() != null)
                        {
                            latestvalue = (double)userdatas.FirstOrDefault().time;
                        }
                        iValues.Add(latestvalue);
                        //cartesianChart1.Series[lineCounter].Values.Add(latestvalue);
                        lineCounter++;

                        LineSeries line = new LineSeries()
                        {
                            Title      = user.ToString(),
                            DataLabels = false,
                            Values     = iValues,
                        };
                        lineseries2.Add(line);
                    }
                }
                else if (selectedgroup == "Students")
                {
                    var data        = db.Students;
                    var users       = (from o in data orderby o.username select o.username).Distinct(); //fuking retard code
                    int lineCounter = 0;

                    if (users.Count() != cartesianChart1.Series.Count()) //in case new one's data added after running ShowLingraph
                    {                                                    //conflict between number of users and number of Series occur
                        lineseries2.Clear();
                        GetTableData();
                        ShowLineGraph();
                        return;
                    }

                    foreach (var user in users)
                    {
                        var    iValues     = cartesianChart1.Series[lineCounter].Values;
                        double latestvalue = 0;

                        var userdatas = from oo in data
                                        where oo.username.Equals(user) &&
                                        (60 * SqlFunctions.DatePart("hour", oo.Date)) + (SqlFunctions.DatePart("minute", oo.Date))
                                        == (60 * SqlFunctions.DatePart("hour", now)) + (SqlFunctions.DatePart("minute", now)) &&
                                        oo.time < 60
                                        select new { oo.time, oo.Date };

                        if (userdatas.FirstOrDefault() != null)
                        {
                            latestvalue = (double)userdatas.FirstOrDefault().time;
                        }
                        iValues.Add(latestvalue);
                        //cartesianChart1.Series[lineCounter].Values.Add(latestvalue);
                        lineCounter++;

                        LineSeries line = new LineSeries()
                        {
                            Title      = user.ToString(),
                            DataLabels = false,
                            Values     = iValues,
                        };
                        lineseries2.Add(line);
                    }
                }
                else
                {
                    var data        = db.voicerecords;
                    var users       = (from o in data orderby o.username select o.username).Distinct(); //fuking retard code
                    int lineCounter = 0;

                    if (users.Count() != cartesianChart1.Series.Count()) //in case new one's data added after running ShowLingraph
                    {                                                    //conflict between number of users and number of Series occur
                        lineseries2.Clear();
                        GetTableData();
                        ShowLineGraph();
                        return;
                    }

                    foreach (var user in users)
                    {
                        var    iValues     = cartesianChart1.Series[lineCounter].Values;
                        double latestvalue = 0;

                        var userdatas = from oo in data
                                        where oo.username.Equals(user) &&
                                        (60 * SqlFunctions.DatePart("hour", oo.Date)) + (SqlFunctions.DatePart("minute", oo.Date))
                                        == (60 * SqlFunctions.DatePart("hour", now)) + (SqlFunctions.DatePart("minute", now)) &&
                                        oo.time < 60
                                        select new { oo.time, oo.Date };

                        if (userdatas.FirstOrDefault() != null)
                        {
                            latestvalue = (double)userdatas.FirstOrDefault().time;
                        }
                        iValues.Add(latestvalue);
                        //cartesianChart1.Series[lineCounter].Values.Add(latestvalue);
                        lineCounter++;

                        LineSeries line = new LineSeries()
                        {
                            Title      = user.ToString(),
                            DataLabels = false,
                            Values     = iValues,
                        };
                        lineseries2.Add(line);
                    }
                }

                cartesianChart1.Series = lineseries2;
            }
            cartesianChart1.AxisX[0].MaxValue = double.NaN;
        }
Exemple #4
0
        private SeriesCollection GetTableData()
        {
            SeriesCollection columnseries = new SeriesCollection();

            DateTime     now    = DateTime.Now;
            ColumnSeries column = new ColumnSeries()
            {
                Title = now.AddMinutes(-chartRangeMinute).ToShortTimeString() + "~" + now.AddMinutes(-chartRangeMinute / 2).ToShortTimeString(),

                DataLabels = false,
                Values     = new ChartValues <double>(),
                //LabelPoint = point => point.Y.ToString()
            };
            ColumnSeries column2 = new ColumnSeries()
            {
                Title = now.AddMinutes(-chartRangeMinute / 2).ToShortTimeString() + "~" + now.ToShortTimeString(),

                DataLabels = false,
                Values     = new ChartValues <double>(),
                //LabelPoint = point => point.Y.ToString()
            };

            using (WorkshopEntities7 db = new WorkshopEntities7())
            {
                if (selectedgroup == "Adults")
                {
                    var data  = db.Adults;
                    var users = (from o in data orderby o.username select o.username).Distinct();
                    //SeriesCollection lineseries = new SeriesCollection();

                    foreach (var user in users)
                    {
                        LineSeries line = new LineSeries()
                        {
                            Title      = user.ToString(),
                            DataLabels = false,
                            Values     = new ChartValues <double>(),
                            //Values=userdatas.AsChartValues()
                        };
                        //double totalseconds1 = 5;
                        //double totalseconds2 = 5;
                        var timesForCulumn1 = new List <double>();
                        var timesForCulumn2 = new List <double>();

                        for (DateTime itime = now.AddMinutes(-chartRangeMinute); itime < now; itime = itime.AddMinutes(1))
                        {
                            double vv = 0;
                            //var ruleDate = Convert.ToDateTime(itime).TimeOfDay;

                            var userdatas = from oo in data
                                            where SqlFunctions.DatePart("minute", oo.Date) == SqlFunctions.DatePart("minute", itime) &&
                                            oo.username.Equals(user) &&
                                            SqlFunctions.DatePart("hour", oo.Date) == SqlFunctions.DatePart("hour", itime) &&
                                            oo.time < 60
                                            select oo.time;

                            Console.WriteLine(itime.ToShortTimeString());

                            if (userdatas.FirstOrDefault() != null)
                            {
                                vv = (double)userdatas.FirstOrDefault();
                            }
                            line.Values.Add(vv);

                            if (itime.TimeOfDay < now.AddMinutes(-chartRangeMinute / 2).TimeOfDay)
                            {
                                //totalseconds1 = totalseconds1 + vv;
                                timesForCulumn1.Add(vv);
                            }
                            else
                            {
                                //totalseconds2 = totalseconds2 + vv;
                                timesForCulumn2.Add(vv);
                            }
                        }
                        if (firstflag)
                        {
                            lineseries.Add(line);
                        }
                        //column.Values.Add(totalseconds1);
                        //column2.Values.Add(totalseconds2);
                        column.Values.Add(timesForCulumn1.Sum() + 5);
                        column2.Values.Add(timesForCulumn2.Sum() + 5);
                    }
                    firstflag = false;
                    //cartesianChart1.Series = series;
                    columnseries.Add(column);
                    columnseries.Add(column2);
                }
                else
                {
                    var data  = db.Students;
                    var users = (from o in data orderby o.username select o.username).Distinct();
                    //SeriesCollection lineseries = new SeriesCollection();

                    foreach (var user in users)
                    {
                        LineSeries line = new LineSeries()
                        {
                            Title      = user.ToString(),
                            DataLabels = false,
                            Values     = new ChartValues <double>(),
                            //Values=userdatas.AsChartValues()
                        };
                        //double totalseconds1 = 5;
                        //double totalseconds2 = 5;
                        var timesForCulumn1 = new List <double>();
                        var timesForCulumn2 = new List <double>();

                        for (DateTime itime = now.AddMinutes(-chartRangeMinute); itime < now; itime = itime.AddMinutes(1))
                        {
                            double vv = 0;
                            //var ruleDate = Convert.ToDateTime(itime).TimeOfDay;

                            var userdatas = from oo in data
                                            where SqlFunctions.DatePart("minute", oo.Date) == SqlFunctions.DatePart("minute", itime) &&
                                            oo.username.Equals(user) &&
                                            SqlFunctions.DatePart("hour", oo.Date) == SqlFunctions.DatePart("hour", itime) &&
                                            oo.time < 60
                                            select oo.time;

                            Console.WriteLine(itime.ToShortTimeString());

                            if (userdatas.FirstOrDefault() != null)
                            {
                                vv = (double)userdatas.FirstOrDefault();
                            }
                            line.Values.Add(vv);

                            if (itime.TimeOfDay < now.AddMinutes(-chartRangeMinute / 2).TimeOfDay)
                            {
                                //totalseconds1 = totalseconds1 + vv;
                                timesForCulumn1.Add(vv);
                            }
                            else
                            {
                                //totalseconds2 = totalseconds2 + vv;
                                timesForCulumn2.Add(vv);
                            }
                        }
                        if (firstflag)
                        {
                            lineseries.Add(line);
                        }
                        //column.Values.Add(totalseconds1);
                        //column2.Values.Add(totalseconds2);
                        column.Values.Add(timesForCulumn1.Sum() + 5);
                        column2.Values.Add(timesForCulumn2.Sum() + 5);
                    }
                    firstflag = false;
                    //cartesianChart1.Series = series;
                    columnseries.Add(column);
                    columnseries.Add(column2);
                }
            }
            return(columnseries);
        }