Exemple #1
0
 public void RemoveValue()
 {
     if (Series1.Count < 3)
     {
         return;
     }
     Series1.RemoveAt(0);
     Series2.RemoveAt(0);
 }
Exemple #2
0
 public BindedBarsViewModel()
 {
     _timer.Tick += (sender, args) =>
     {
         Series1.RemoveAt(0);
         Series1.Add(_random.Next(-10, 39));
         Series2.RemoveAt(0);
         Series2.Add(_random.Next(-10, 39));
     };
 }
Exemple #3
0
 public void AddValue()
 {
     Series1.Add(_random.Next(-10, 39));
     Series2.Add(_random.Next(-10, 39));
 }
Exemple #4
0
        /// ////////////////


        public StatusModel <JoinDropStatisticsModel> GetJoinDropStatistics(Area?area)
        {
            var result = new StatusModel <JoinDropStatisticsModel>();

            try
            {
                using (var unitOfWork = new UnitOfWork <BelibaHomaDBEntities>())
                {
                    var traineeRepository = unitOfWork.GetRepository <ITraineeRepository>();

                    var JoinedTrainee = traineeRepository.GetAll().Where(
                        t => t.User.UserRole == (int)UserRole.Trainee &&
                        (!area.HasValue || t.User.Area == (int?)area));

                    var DropedTrainee = traineeRepository.GetAll().Where(
                        t => t.User.Trainee.DroppedOut && t.User.UserRole == (int)UserRole.Trainee &&
                        (!area.HasValue || t.User.Area == (int?)area));

                    var sumJoined = JoinedTrainee.OrderBy(ts => ts.User.CreationTime.Year).GroupBy(ts => ts.User.CreationTime.Year)
                                    .ToDictionary(ts => ts.Key, tss => tss.Sum(ts => 1));
                    var sumDropedTrainee = DropedTrainee.OrderBy(ts => ts.User.CreationTime.Year).GroupBy(ts => ts.User.UpdateTime.Year)
                                           .ToDictionary(ts => ts.Key, tss => tss.Sum(ts => 1));

                    result.Data = new JoinDropStatisticsModel();
                    var minYearJoined  = sumJoined.Count > 0 ? sumJoined.Min(s => s.Key) : DateTime.MaxValue.Year;
                    var minYearDropped = sumDropedTrainee.Count > 0
                        ? sumDropedTrainee.Min(s => s.Key)
                        : DateTime.MaxValue.Year;

                    var minYear = minYearDropped > minYearJoined ? minYearJoined : minYearDropped;

                    var maxYearJoined  = sumJoined.Count > 0 ? sumJoined.Max(s => s.Key) : DateTime.MinValue.Year;
                    var maxYearDropped = sumDropedTrainee.Count > 0
                        ? sumDropedTrainee.Max(s => s.Key)
                        : DateTime.MinValue.Year;

                    var maxYear = maxYearDropped < maxYearJoined ? maxYearJoined : maxYearDropped;

                    var yearList    = new List <string>();
                    var yearListInt = new List <int>();
                    for (var year = minYear; year <= maxYear; year++)
                    {
                        yearList.Add(year.ToString());
                        yearListInt.Add(year);
                    }

                    result.Data.YearList = yearList;


                    var joined = new Series1
                    {
                        name = "כמות המצטרפים"
                    };

                    var dropped = new Series1
                    {
                        name = "כמות הנושרים"
                    };

                    var joinedSeries  = new List <int>();
                    var droppedSeries = new List <int>();

                    foreach (var year in yearListInt)
                    {
                        if (sumJoined.ContainsKey(year))
                        {
                            joinedSeries.Add(sumJoined[year]);
                        }
                        else
                        {
                            joinedSeries.Add(0);
                        }

                        if (sumDropedTrainee.ContainsKey(year))
                        {
                            droppedSeries.Add(sumDropedTrainee[year]);
                        }
                        else
                        {
                            droppedSeries.Add(0);
                        }
                    }

                    joined.data  = joinedSeries.ToArray();
                    dropped.data = droppedSeries.ToArray();

                    result.Data.Series = new List <Series1> {
                        joined, dropped
                    };

                    result.Success = true;
                }
            }
            catch (Exception ex)
            {
                result.Message = String.Format("Error getting Join Drop Statistics from DB");
                LogService.Logger.Error(result.Message, ex);
            }


            return(result);
        }
Exemple #5
0
        //////////// Alerts

        /// ////////////////


        public StatusModel <AlertsStatisticsModel> GetAlertsStatistics(Area?area, DateTime startTime, DateTime endTime)
        {
            var result = new StatusModel <AlertsStatisticsModel>();

            try
            {
                using (var unitOfWork = new UnitOfWork <BelibaHomaDBEntities>())
                {
                    var alertsRepository = unitOfWork.GetRepository <IAlertRepository>();

                    var JoinedAlerts = alertsRepository.GetAll().Where(
                        t => (!area.HasValue || t.Area == (int?)area));

                    var JoinedAlertsCurYear = JoinedAlerts.Where(ts => ts.CreationTime >= startTime && ts.CreationTime <= endTime);



                    var groupedAlertsType = JoinedAlertsCurYear.GroupBy(ts => ts.AlertType);

                    var dict0 = new Dictionary <string, int>(); // dictionary of AlertType, Alerts count.
                    var dict1 = new Dictionary <string, int>(); // dictionary of AlertType, Alerts count.
                    var dict2 = new Dictionary <string, int>(); // dictionary of AlertType, Alerts count.


                    var alertType0 = new Series1
                    {
                        name = "ציון חניך"
                    };

                    var alertType1 = new Series1
                    {
                        name = "דרושה התערבות"
                    };

                    var alertType2 = new Series1
                    {
                        name = "איחור בדיווח"
                    };



                    var Type0Series = new List <int>();
                    var Type1Series = new List <int>();
                    var Type2Series = new List <int>();



                    foreach (var tt in groupedAlertsType)
                    {
                        var groupedAlerts = tt.GroupBy(tr => tr.CreationTime.Month);

                        var key = tt.Key;
                        foreach (var alert in tt)
                        {
                            var month = alert.CreationTime.Month.ToString();
                            switch (key)
                            {
                            case 0:

                                if (!dict0.ContainsKey(month))
                                {
                                    dict0.Add(month, 1);
                                }
                                else
                                {
                                    dict0[month]++;
                                }
                                break;

                            case 1:
                                if (!dict1.ContainsKey(month))
                                {
                                    dict1.Add(month, 1);
                                }
                                else
                                {
                                    dict1[month]++;
                                }
                                break;

                            case 2:
                                if (!dict2.ContainsKey(month))
                                {
                                    dict2.Add(month, 1);
                                }
                                else
                                {
                                    dict2[month]++;
                                }
                                break;
                            }
                        }

                        //var key = tt.Key;
                        //var value = tt.Where();


                        //if (tt.Key==0)
                        //{
                        //    //dict0.Add(groupedAlerts.First().Key.ToString(),groupedAlerts.Count());
                        //    if (dict0.ContainsKey(tt))

                        //}
                        //if (tt.Key==1)
                        //{
                        //    dict1.Add(groupedAlerts.First().Key.ToString(),groupedAlerts.Count());
                        //}
                        //if (tt.Key==2)
                        //{
                        //    dict2.Add(groupedAlerts.First().Key.ToString(),groupedAlerts.Count());
                        //}
                    }



                    //  result.Data.AlertsStatistics = dict;
                    var monthListInt = new List <int>();
                    for (var month = 9; month <= 20; month++)
                    {
                        monthListInt.Add(month % 12 + 1);
                    }

                    foreach (var month in monthListInt)
                    {
                        if (dict0.ContainsKey(month.ToString()))
                        {
                            Type0Series.Add(dict0[month.ToString()]);
                        }
                        else
                        {
                            Type0Series.Add(0);
                        }

                        if (dict1.ContainsKey(month.ToString()))
                        {
                            Type1Series.Add(dict1[month.ToString()]);
                        }
                        else
                        {
                            Type1Series.Add(0);
                        }

                        if (dict2.ContainsKey(month.ToString()))
                        {
                            Type2Series.Add(dict2[month.ToString()]);
                        }
                        else
                        {
                            Type2Series.Add(0);
                        }
                    }

                    alertType0.data = Type0Series.ToArray();
                    alertType1.data = Type1Series.ToArray();
                    alertType2.data = Type2Series.ToArray();

                    result.Data        = new AlertsStatisticsModel();
                    result.Data.Series = new List <Series1> {
                        alertType0, alertType1, alertType2
                    };


                    result.Success = true;
                }
            }
            catch (Exception ex)
            {
                result.Message = String.Format("Error getting Alerts Statistics from DB");
                LogService.Logger.Error(result.Message, ex);
            }


            return(result);
        }