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); }
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]); } } } }