public async Task WriteSnapshots <T>(string bucket, string streamId, ISnapshot snapshot, IDictionary <string, string> commitHeaders) where T : class, IEventSource { var streamName = _streamGen(typeof(T), StreamTypes.Snapshot, bucket, streamId); Logger.Write(LogLevel.Debug, () => $"Writing snapshot to stream [{streamName}]"); var e = new WritableEvent { Descriptor = new EventDescriptor { EntityType = typeof(T).AssemblyQualifiedName, StreamType = StreamTypes.Snapshot, Bucket = bucket, StreamId = streamId, Timestamp = snapshot.Timestamp, Version = snapshot.Version, Headers = new Dictionary <string, string>(), CommitHeaders = commitHeaders }, Event = snapshot.Payload, }; Saved.Mark(); await _store.WriteSnapshot(streamName, e, commitHeaders).ConfigureAwait(false); }