protected virtual SnapshotModel BuildSnapshotModel(EventStoreDocument document)
        {
            var em = BuildEventModel(document);

            return(new SnapshotModel
            {
                Data = em.Data,
                DataType = em.DataType,
                Version = document.Version
            });
        }
 private static EventStreamModel BuildEventStreamModel(string streamId, EventStoreDocument rootDoc,
                                                       IEnumerable <EventModel> events = null, SnapshotModel snapshot = null
                                                       )
 {
     return(new EventStreamModel
     {
         StreamId = streamId,
         Version = rootDoc.Version,
         TimeStamp = DateTimeOffset.FromUnixTimeSeconds(rootDoc.TimeStamp),
         Events = events?.ToArray(),
         Snapshot = snapshot
     });
 }
        protected virtual EventModel BuildEventModel(EventStoreDocument document)
        {
            object data;

            try
            {
                data = JObject.FromObject(document.Data, JsonSerializer)
                       .ToObject(Type.GetType(document.DataType) ?? throw new ArgumentException(), JsonSerializer);
            }
            catch (JsonSerializationException)
            {
                data = document.Data;
            }
            catch (ArgumentException)
            {
                data = document.Data;
            }

            return(new EventModel
            {
                Data = data,
                DataType = document.DataType
            });
        }