private IMongoQueryable <EventModel> AddFilters( IEventFilteringCriteria eventFilteringCriteria, IMongoQueryable <EventModel> query) { return(query .AddFilter(!string.IsNullOrEmpty(eventFilteringCriteria.Source), q => q.Where(x => x.Source == eventFilteringCriteria.Source)) .AddFilter(!string.IsNullOrEmpty(eventFilteringCriteria.EventName), q => q.Where(x => x.EventName == eventFilteringCriteria.EventName)) .AddFilter(eventFilteringCriteria.EventType != null, q => q.Where(x => x.EventType == eventFilteringCriteria.EventType)) .AddFilter(eventFilteringCriteria.From != null, q => q.Where(x => x.Timestamp >= eventFilteringCriteria.From)) .AddFilter(eventFilteringCriteria.To != null, q => q.Where(x => x.Timestamp <= eventFilteringCriteria.To))); }