예제 #1
0
 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)));
 }