Exemplo n.º 1
0
        public void DeleteStream(string bucketId, string streamId)
        {
            if (Logger.IsWarnEnabled)
            {
                Logger.Warn(Messages.DeletingStream, streamId, bucketId);
            }
            TryMongo(() =>
            {
                PersistedStreamHeads.DeleteOne(
                    Builders <BsonDocument> .Filter.Eq(MongoStreamHeadFields.Id, new BsonDocument {
                    { MongoStreamHeadFields.BucketId, bucketId },
                    { MongoStreamHeadFields.StreamId, streamId }
                })
                    );

                PersistedSnapshots.DeleteMany(
                    Builders <BsonDocument> .Filter.Eq(MongoShapshotFields.Id, new BsonDocument {
                    { MongoShapshotFields.BucketId, bucketId },
                    { MongoShapshotFields.StreamId, streamId }
                })
                    );

                PersistedCommits.UpdateMany(
                    Builders <BsonDocument> .Filter.And(
                        Builders <BsonDocument> .Filter.Eq(MongoCommitFields.BucketId, bucketId),
                        Builders <BsonDocument> .Filter.Eq(MongoCommitFields.StreamId, streamId)
                        ),
                    Builders <BsonDocument> .Update.Set(MongoCommitFields.BucketId, MongoSystemBuckets.RecycleBin)
                    );
            });
        }