protected virtual IQueryable <WebHookEntity> BuildQuery(WebhookSearchCriteria searchCriteria, IWebHookRepository repository) { var query = repository.WebHooks; if (searchCriteria.IsActive.HasValue) { query = repository.WebHooks.Where(x => x.IsActive == searchCriteria.IsActive); } if (!string.IsNullOrWhiteSpace(searchCriteria.SearchPhrase)) { query = query.Where(x => x.Name.Contains(searchCriteria.SearchPhrase)); } if (!searchCriteria.EventIds.IsNullOrEmpty()) { query = query.Where(x => x.IsAllEvents || x.Events.Any(y => searchCriteria.EventIds.Contains(y.EventId))); } return(query); }