Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
        private ParametersInfo GetParameters()
        {
            var r = new ParametersInfo();
            var commonAcknowledgeParameters = _commonCategory.AlarmsToAcknowledge();
            var commonCurrentQueries        = _commonCategory.QueriesForCurrent();

            r.CommonCurrentInfo.AddRange(commonCurrentQueries.Select(q =>
                                                                     new Tuple <Action <Alarm[]>, CriteriaType, int>(q.Item4, q.Item1, q.Item3)));
            var commonHistoryQueries = _commonCategory.QueriesForHistory();

            r.CommonHistoryInfo.AddRange(commonHistoryQueries.Select(q =>
                                                                     new Tuple <Action <Alarm[]>, CriteriaType, int>(q.Item4, q.Item1, q.Item3)));
            var commonStatusIsRead = _commonCategory.IsRead();

            foreach (var c in _categories.Values)
            {
                var parameter = new RemapAlarmsParameter
                {
                    CategoryId = c.Id
                };
                var addToParameters = false;

                parameter.AcknowledgeParameters = GetAcknowledgeParameters(c, commonAcknowledgeParameters);
                if (parameter.AcknowledgeParameters.Any())
                {
                    addToParameters = true;
                }

                if (c.IsRead() || commonStatusIsRead)
                {
                    parameter.GetStatus = true;
                    addToParameters     = true;
                }

                var currentQueries   = c.QueriesForCurrent();
                var currentCallbacks = currentQueries.Select(q => q.Item4).ToArray();
                parameter.CurrentParameters = commonCurrentQueries.Concat(currentQueries)
                                              .Select(q => new Tuple <CriteriaType, AlarmSampleId, int>(q.Item1, q.Item2, q.Item3))
                                              .ToArray();
                if (parameter.CurrentParameters.Any())
                {
                    addToParameters = true;
                }

                var historyQueries   = c.QueriesForHistory();
                var historyCallbacks = historyQueries.Select(q => q.Item4).ToArray();
                parameter.HistoryParameters = commonHistoryQueries.Concat(historyQueries)
                                              .Select(q => new Tuple <CriteriaType, AlarmSampleId, int>(q.Item1, q.Item2, q.Item3))
                                              .ToArray();
                if (parameter.HistoryParameters.Any())
                {
                    addToParameters = true;
                }

                if (addToParameters)
                {
                    r.Parameters.Add(new Tuple <RemapAlarmsParameter, Action <Alarm[]>[], Action <Alarm[]>[]>(
                                         parameter, currentCallbacks, historyCallbacks));
                }
            }
            return(r);
        }