Esempio n. 1
0
 protected void ExecuteNegativeActionsForTiming(ActionTiming timing)
 {
     foreach (var action in actionsToTrigger.Where(tc => tc.actionTiming.HasFlag(timing)))
     {
         action.NegativeExecute();
     }
 }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
 bool HasTiming(ActionTiming timing)
 {
     return((int)timing > 0);
 }