private static void PreAggregateEventTypes(IEnumerable <IEvent> events, EventCommit commit) { commit.AllEventTypes = events .Select(x => x.Headers.GetString(EventHeaderKeys.AssemblyEventType)) .Distinct() .ToList(); }
public IEnumerable <IEvent> ExtractEvents(EventCommit commit) { foreach (KeyValuePair <string, EventDto> @event in commit.Events) { @event.Value.Headers.Add(EventHeaderKeys.AggregateId, commit.AggregateId); @event.Value.Headers.Add(EventHeaderKeys.CommitId, commit.Ordinal.ToString()); yield return(serializer.DeserializeEvent(@event.Value.Headers, @event.Value.Body)); } }
public EventCommit ToCommit(string domainobjectId, Type domainObjectType, long originVersion, long commitVersion, IList <IEvent> events) { Dictionary <string, EventDto> items = MapEvents(domainobjectId, events); var commit = new EventCommit { AggregateId = domainobjectId, AggregateType = domainObjectType.FullName, AggregateTypeShort = domainObjectType.Name, AggregatePackage = domainObjectType.GetTypeInfo().Assembly.GetName().Name, Ordinal = Timestamp.FromNow(), Timestamp = DateTime.UtcNow, VersionEvents = originVersion + events.Count, VersionCommit = commitVersion, Events = items }; return(commit); }