Ejemplo n.º 1
0
 private static void PreAggregateEventTypes(IEnumerable <IEvent> events, EventCommit commit)
 {
     commit.AllEventTypes = events
                            .Select(x => x.Headers.GetString(EventHeaderKeys.AssemblyEventType))
                            .Distinct()
                            .ToList();
 }
Ejemplo n.º 2
0
 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));
     }
 }
Ejemplo n.º 3
0
        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);
        }