예제 #1
0
        private static void replay(IEnumerable<Event> changeEvents, Aggregate aggregate)
        {
            foreach (var @event in changeEvents)
                try
                {
                    aggregate.AsDynamic().Receive(@event);
                }
                catch (ApplicationException e)
                {
                    if (e.Source == "ReflectionMagic")
                        throw new MissingMethodException(aggregate.GetType().FullName, "Receive(" + @event.GetType() + ")");

                    throw;
                }
        }