After() public method

Indicates that this process must happen after all the predecessors
public After ( ) : IEnumerable
return IEnumerable
Beispiel #1
0
        /// <summary>
        /// Indicates that this process should execute before another
        /// </summary>
        /// <param name="follower">The ancestor.</param>
        /// <returns>returns this process</returns>
        public OrderedProcess Before(OrderedProcess follower)
        {
            DependencyGraph.CheckGraph(this, follower);

            if (_followers.Add(follower))
            {
                follower.After(this);
            }

            return(follower);
        }
        public void BasicOrderAfter()
        {
            DependencyGraph g = new DependencyGraph();

            OrderedProcess a = new OrderedProcess(g, "A");
            OrderedProcess b = new OrderedProcess(g, "B");
            OrderedProcess c = new OrderedProcess(g, "C");

            a.Before(b).Before(c);

            c.After(b).After(a);

            IEnumerable<IEnumerable<OrderedProcess>> s = g.CalculateSort();

            Assert.AreEqual(1, s.Skip(0).First().Count());
            Assert.AreEqual(a, s.Skip(0).First().First());

            Assert.AreEqual(1, s.Skip(1).First().Count());
            Assert.AreEqual(b, s.Skip(1).First().First());

            Assert.AreEqual(1, s.Skip(2).First().Count());
            Assert.AreEqual(c, s.Skip(2).First().First());
        }
Beispiel #3
0
        /// <summary>
        /// Indicates that all members of the enumerable must happen before the single follower
        /// </summary>
        /// <param name="predecessors">The predecessors.</param>
        /// <param name="follower">The follower.</param>
        /// <returns>the followers</returns>
        public static OrderedProcess <T> Before <T>(this IEnumerable <OrderedProcess <T> > predecessors, OrderedProcess <T> follower)
        {
            follower.After(predecessors);

            return(follower);
        }
        /// <summary>
        /// Indicates that this process should execute before another
        /// </summary>
        /// <param name="follower">The ancestor.</param>
        /// <returns>returns this process</returns>
        public OrderedProcess Before(OrderedProcess follower)
        {
            DependencyGraph.CheckGraph(this, follower);

            if (followers.Add(follower))
                follower.After(this);

            return follower;
        }