public Task <bool> Add(SnapshotElement <BaseAggregate> snapshot)
 {
     lock (_snapshots)
     {
         _snapshots.Add(snapshot);
         return(Task.FromResult(true));
     }
 }
        private static SnapshotElement <T> Copy <T>(SnapshotElement <BaseAggregate> obj) where T : BaseAggregate
        {
            var copy = (T)(obj.Content).Clone();

            return(new SnapshotElement <T>(obj.Start, obj.CreateDateTime, obj.Id, copy));
        }