/// <summary> /// Gets the pending events. /// </summary> /// <param name="aggregate">The aggregate.</param> /// <returns></returns> internal static IList <IDomainEvent> GetPendingEvents(this Aggregate aggregate) { return(aggregate.PendingEvents); }
/// <summary> /// Determines whether [is event duplicate] [the specified event identifier]. /// </summary> /// <param name="aggregate">The aggregate.</param> /// <param name="eventId">The event identifier.</param> /// <returns> /// <c>true</c> if [is event duplicate] [the specified event identifier]; otherwise, <c>false</c>. /// </returns> internal static Boolean IsEventDuplicate(this Aggregate aggregate, Guid eventId) { return(aggregate.EventHistory.ContainsKey(eventId) || aggregate.PendingEvents.Any(x => x.EventId == eventId)); }
/// <summary> /// Gets the historical events. /// </summary> /// <param name="aggregate">The aggregate.</param> /// <returns></returns> internal static IList <IDomainEvent> GetHistoricalEvents(this Aggregate aggregate) { return(aggregate.EventHistory.Select(x => x.Value).ToList()); }