internal bool UpdateSingleProgrammingAction(ProgrammingActionType type, ProgrammingActionState state, bool executed) { using (IEnumerator <ProgrammingAction> enumerator = this.programmingActionList.GetEnumerator()) { while (enumerator.MoveNext()) { ProgrammingAction programmingAction = enumerator.Current; if (programmingAction.Type == type) { programmingAction.UpdateState(state, executed); return(true); } } return(false); } }
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]); } } } }