Exemple #1
0
        protected virtual string SerializeAggregate(TAggregate aggregate)
        {
            var cached = new CachedAggregate
            {
                Id       = aggregate.Id,
                Snapshot = aggregate.Snapshot,
                Events   = aggregate.Events
            };

            return(JsonConvert.SerializeObject(cached, _jsonSerializerSettings));
        }
Exemple #2
0
        protected virtual TAggregate DeserializeAggregate(string serialized)
        {
            CachedAggregate cached = JsonConvert.DeserializeObject <CachedAggregate>(serialized, _jsonSerializerSettings);

            if (cached.Snapshot == null)
            {
                return(Activator.CreateInstance(typeof(TAggregate), cached.Id, cached.Events) as TAggregate);
            }
            else
            {
                return(Activator.CreateInstance(typeof(TAggregate), cached.Id, cached.Snapshot, cached.Events) as TAggregate);
            }
        }