public static void Spool(AggregateState state, IEvent evnt)
 {
     if (state == null)
     {
         throw new ArgumentNullException("state");
     }
     InvokeMethodOn(state, evnt);
 }
        public static void Spool(AggregateState state, IEnumerable <IEvent> events)
        {
            if (state == null)
            {
                throw new ArgumentNullException("state");
            }

            foreach (var evnt in events)
            {
                InvokeMethodOn(state, evnt);
            }
        }
 public static void Spool(AggregateState state, IEnumerable <Transition> transitions)
 {
     Spool(state, transitions.SelectMany(t => t.Events).Select(e => (IEvent)e.Data));
 }
 private static void InvokeMethodOn(AggregateState state, IEvent evnt)
 {
     state.Invoke(evnt);
 }