/// <summary> /// /// </summary> /// <param name="eventStream"></param> /// <param name="jsonSerializer"></param> /// <returns></returns> public static Commit From(UncommittedEventStream eventStream, ISerializer jsonSerializer) { var events = eventStream.Events.Select(e => new Event { Id = e.Id, CorrelationId = e.Metadata.CorrelationId, EventArtifact = e.Metadata.Artifact.Id, EventSourceId = e.Metadata.EventSourceId, Generation = e.Metadata.Artifact.Generation, EventSourceArtifact = eventStream.Source.Artifact, Commit = e.Metadata.VersionedEventSource.Version.Commit, Sequence = e.Metadata.VersionedEventSource.Version.Sequence, Occurred = e.Metadata.Occurred.ToUnixTimeMilliseconds(), OriginalContext = jsonSerializer.ToJson(OriginalContext.From(e.Metadata.OriginalContext)), EventData = PropertyBagSerializer.Serialize(e.Event, jsonSerializer) }).ToList(); var commit = new Commit { Id = 0, CorrelationId = eventStream.CorrelationId, CommitId = eventStream.Id, Timestamp = eventStream.Timestamp.ToUnixTimeMilliseconds(), EventSourceId = eventStream.Source.EventSource, EventSourceArtifact = eventStream.Source.Artifact, CommitNumber = eventStream.Source.Version.Commit, Sequence = eventStream.Source.Version.Sequence, Events = events }; return(commit); }
/// <summary> /// /// </summary> /// <param name="serializer"></param> /// <returns></returns> public PropertyBag ToPropertyBag(ISerializer serializer) { return(PropertyBagSerializer.From(EventData, serializer)); }