Example #1
0
        /// <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);
        }
Example #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="serializer"></param>
 /// <returns></returns>
 public PropertyBag ToPropertyBag(ISerializer serializer)
 {
     return(PropertyBagSerializer.From(EventData, serializer));
 }