public void Write()
        {
            DetectChanges();
            var commands = GetWriteCommands();

            CommandWriter.Write(commands);
            CommitChanges();
            ClearStaging();
        }
        public async Task WriteAsync(CancellationToken cancellationToken = default)
        {
            DetectChanges();
            cancellationToken.ThrowIfCancellationRequested();
            var commands = GetWriteCommands();

            cancellationToken.ThrowIfCancellationRequested();
            await CommandWriter.WriteAsync(commands, cancellationToken).ConfigureAwait(false);

            CommitChanges();
            ClearStaging();
        }
 public EntityWriterPipeline(IMongoDbConnection connection)
 {
     Connection    = connection;
     CommandWriter = new CommandWriter <TEntity>(connection);
 }