public void RemoveValue() { if (Series1.Count < 3) { return; } Series1.RemoveAt(0); Series2.RemoveAt(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)); }; }
public void AddValue() { Series1.Add(_random.Next(-10, 39)); Series2.Add(_random.Next(-10, 39)); }
/// //////////////// 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); }
//////////// 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); }