protected IQueryable <TDataModel> QuerySearch( IQueryable <TDataModel> origin, IDataFilter <TDataModel> filter, IDataIncludes includes) { Checker.NotNullArgument(origin, nameof(origin)); Checker.NotNullArgument(filter, nameof(filter)); var filterExpressions = filter.GetExpressions(); Checker.NotNullObject(filterExpressions, $"filter.{nameof(filter.GetExpressions)}()"); var query = filterExpressions.Aggregate(origin, (q, w) => q.Where(w)); return(TryApplyIncludes(query, includes)); }