private static EventFilter CreateFilter(string?streamFilter, StreamPosition streamPosition) { var byPosition = Filtering.ByPosition(streamPosition); var byStream = Filtering.ByStream(streamFilter); if (byStream != null) { return(Filter.And(byPosition, byStream)); } return(byPosition); }
private static PipelineDefinition <ChangeStreamDocument <MongoEventCommit>, ChangeStreamDocument <MongoEventCommit> >?Match(string?streamFilter) { var result = new EmptyPipelineDefinition <ChangeStreamDocument <MongoEventCommit> >(); var byStream = Filtering.ByChangeInStream(streamFilter); if (byStream != null) { var filterBuilder = Builders <ChangeStreamDocument <MongoEventCommit> > .Filter; var filter = filterBuilder.Or(filterBuilder.Ne(x => x.OperationType, ChangeStreamOperationType.Insert), byStream); return(result.Match(filter)); } return(result); }