internal void SetAlarmInfo(Func <string> locationGetter, Func <string> descriptionGetter, AlarmCategoryAbstract category) { _locationGetter = locationGetter; _descriptionGetter = descriptionGetter; _category = category; }
private static Tuple <AlarmSampleId[], Identity>[] GetAcknowledgeParameters( AlarmCategoryAbstract category, IEnumerable <Tuple <AlarmSampleId[], Identity> > commonAcknowledgeParameters) { var alarmsToAcknowledge = new List <Tuple <AlarmSampleId, Identity> >(); foreach (var tuple in commonAcknowledgeParameters) { alarmsToAcknowledge.AddRange(from alarmSampleId in tuple.Item1 where category.HasAlarm(alarmSampleId.AlarmId) select new Tuple <AlarmSampleId, Identity>(alarmSampleId, tuple.Item2)); } var acknowledgeParameters = category.AlarmsToAcknowledge(); foreach (var tuple in acknowledgeParameters) { alarmsToAcknowledge.AddRange(from alarmSampleId in tuple.Item1 where category.HasAlarm(alarmSampleId.AlarmId) select new Tuple <AlarmSampleId, Identity>(alarmSampleId, tuple.Item2)); } return(alarmsToAcknowledge .GroupBy(t => t.Item2) .Select(g => new Tuple <AlarmSampleId[], Identity>(g.Select(i => i.Item1).ToArray(), g.Key)) .ToArray()); }
private void ApplyStatus(ParametersInfo info, IList <RemapAlarmResult> result) { var categoriesSet = new HashSet <AlarmCategoryAbstract>(); for (var i = 0; i < result.Count; i++) { var p = info.Parameters[i]; RemapAlarmResult r = result[i]; AlarmCategoryAbstract c = _categories[p.Item1.CategoryId]; categoriesSet.Add(c); if (p.Item1.GetStatus) { c.HasActive = r.HasActive; c.HasUnacknowledged = r.HasUnacknowledged; } else { c.HasActive = null; c.HasUnacknowledged = null; } } foreach (AlarmCategoryAbstract unAppliedCategory in _categories.Values.Where(c => !categoriesSet.Contains(c))) { unAppliedCategory.HasActive = null; unAppliedCategory.HasUnacknowledged = null; } ApplyCommonStatus(); }
public void Add(AlarmCategoryAbstract category) { if (category.Id == 0) { _commonCategory = category; } else { _categories.Add(category.Id, category); } }
public void Add(AlarmCategoryAbstract category) { if (category.Id == 0) { _commonCategory = category; } else { _categories.Add(category.Id, category); } }
private void ApplyHistoryQueries(ParametersInfo info, IList <RemapAlarmResult> result) { for (var i = 0; i < result.Count; i++) { var p = info.Parameters[i]; RemapAlarmResult r = result[i]; AlarmCategoryAbstract alarmCategory = _categories[p.Item1.CategoryId]; foreach (Alarm a in r.History.SelectMany(alarms => alarms)) { var alarmInfo = alarmCategory.GetAlarmInfo(a.AlarmId); a.SetAlarmInfo(alarmInfo.Item1, alarmInfo.Item2, alarmCategory); } var callbacks = p.Item3; for (var j = 0; j < callbacks.Length; j++) { var callback = callbacks[j]; var alarms = r.History[info.CommonCurrentInfo.Count + j]; callback(alarms); } } for (var i = 0; i < info.CommonHistoryInfo.Count; i++) { var historyInfo = info.CommonHistoryInfo[i]; int i1 = i; var alarms = result.SelectMany(r => r.History[i1]); switch (historyInfo.Item2) { case CriteriaType.DownFromInfinity: case CriteriaType.DownFrom: case CriteriaType.DownFromOrEqual: alarms = alarms.OrderByDescending(a => a.StartTime).ThenByDescending(a => a.AlarmId) .Take(historyInfo.Item3); break; case CriteriaType.UpFromInfinity: case CriteriaType.UpFrom: case CriteriaType.UpFromOrEqual: alarms = alarms.OrderBy(a => a.StartTime).ThenBy(a => a.AlarmId) .Take(historyInfo.Item3).Reverse(); break; } var callback = historyInfo.Item1; var alarmsArray = alarms.ToArray(); callback(alarmsArray); } }
private static Tuple<AlarmSampleId[], Identity>[] GetAcknowledgeParameters( AlarmCategoryAbstract category, IEnumerable<Tuple<AlarmSampleId[], Identity>> commonAcknowledgeParameters) { var alarmsToAcknowledge = new List<Tuple<AlarmSampleId, Identity>>(); foreach (var tuple in commonAcknowledgeParameters) { alarmsToAcknowledge.AddRange(from alarmSampleId in tuple.Item1 where category.HasAlarm(alarmSampleId.AlarmId) select new Tuple<AlarmSampleId, Identity>(alarmSampleId, tuple.Item2)); } var acknowledgeParameters = category.AlarmsToAcknowledge(); foreach (var tuple in acknowledgeParameters) { alarmsToAcknowledge.AddRange(from alarmSampleId in tuple.Item1 where category.HasAlarm(alarmSampleId.AlarmId) select new Tuple<AlarmSampleId, Identity>(alarmSampleId, tuple.Item2)); } return alarmsToAcknowledge .GroupBy(t => t.Item2) .Select(g => new Tuple<AlarmSampleId[], Identity>(g.Select(i => i.Item1).ToArray(), g.Key)) .ToArray(); }
internal void SetAlarmInfo(Func<string> locationGetter, Func<string> descriptionGetter, AlarmCategoryAbstract category) { _locationGetter = locationGetter; _descriptionGetter = descriptionGetter; _category = category; }