Beispiel #1
0
        private IDictionary <ProgrammingActionType, IList <SgbmIdChange> > CalculateActionStates(IEnumerable <IPsdzTalLine> talLines)
        {
            Dictionary <ProgrammingActionType, IList <SgbmIdChange> > dictionary = new Dictionary <ProgrammingActionType, IList <SgbmIdChange> >();

            foreach (IPsdzTalLine talLine in talLines)
            {
                foreach (ProgrammingActionType key in EcuProgrammingInfo.MapProgrammingActionType(talLine))
                {
                    if (!dictionary.ContainsKey(key))
                    {
                        dictionary.Add(key, new List <SgbmIdChange>());
                    }
                    IList <SgbmIdChange> sgbmIds = this.GetSgbmIds(talLine);
                    dictionary[key].AddRange(sgbmIds);
                }
            }
            return(dictionary);
        }
Beispiel #2
0
        internal void UpdateProgrammingActions(IEnumerable <IPsdzTalLine> talLines, bool isTalExecuted, int escalationSteps = 0)
        {
            IDictionary <ProgrammingActionType, ICollection <IPsdzTalLine> > dictionary = new Dictionary <ProgrammingActionType, ICollection <IPsdzTalLine> >();

            foreach (IPsdzTalLine psdzTalLine in talLines)
            {
                foreach (ProgrammingActionType key in EcuProgrammingInfo.MapProgrammingActionType(psdzTalLine))
                {
                    if (dictionary.ContainsKey(key))
                    {
                        dictionary[key].Add(psdzTalLine);
                    }
                    else
                    {
                        dictionary.Add(key, new List <IPsdzTalLine>
                        {
                            psdzTalLine
                        });
                    }
                }
            }
            foreach (ProgrammingActionType programmingActionType in dictionary.Keys)
            {
                ProgrammingAction programmingAction = this.GetProgrammingAction(programmingActionType) as ProgrammingAction;
                if (programmingAction != null)
                {
                    if (isTalExecuted)
                    {
                        programmingAction.Update(dictionary[programmingActionType], escalationSteps);
                    }
                    else
                    {
                        programmingAction.UpdateState(dictionary[programmingActionType]);
                    }
                }
            }
        }