protected void ExecuteNegativeActionsForTiming(ActionTiming timing) { foreach (var action in actionsToTrigger.Where(tc => tc.actionTiming.HasFlag(timing))) { action.NegativeExecute(); } }
/// <summary> /// Obtient ou crée une <see cref="CriticalAction"/> contenant l'action spécifiée. /// </summary> /// <param name="action">L'action.</param> /// <param name="allActions">La totalité des actions.</param> /// <param name="createdActions">Les actions déjà créées.</param> /// <returns> /// L'instance de <see cref="CriticalAction"/>. /// </returns> public static CriticalAction GetOrCreate(ActionTiming action, IEnumerable <ActionTiming> allActions, List <CriticalAction> createdActions) { var cpma = createdActions.FirstOrDefault(a => a.Action == action.Action); if (cpma == null) { cpma = new CriticalAction() { Action = action.Action, Duration = action.Finish - action.Start, }; createdActions.Add(cpma); if (!action.Predecessors.Any()) { cpma.Duration += action.Start; } foreach (var p in action.Predecessors) { var cpmPredecessor = GetOrCreate(p, allActions, createdActions); if (!cpma.Predecessors.Any(a => a.Action == p.Action)) { cpma.Predecessors.Add(cpmPredecessor); } } foreach (var s in action.Successors) { var cpmSuccessor = GetOrCreate(s, allActions, createdActions); if (!cpma.Successors.Any(a => a.Action == s.Action)) { cpma.Successors.Add(cpmSuccessor); } } } return(cpma); }
bool HasTiming(ActionTiming timing) { return((int)timing > 0); }