private Expression<Func<AuditTrailEntry, bool>> MakeSubjectNameFilterExpression(AuditTrailFilterLogic filterLogic, List<AuditTrailTextFilterParameter> filterParameters) { Expression<Func<AuditTrailEntry, bool>> textFilter = PredicateExtensions.PredicateExtensions.Begin<AuditTrailEntry>(true); if (filterParameters.Count > 0) { if (filterLogic == AuditTrailFilterLogic.AND) { foreach (AuditTrailTextFilterParameter param in filterParameters) { textFilter = textFilter.And(MakeSubjectNameFilterParameterExpression(param)); } } if (filterLogic == AuditTrailFilterLogic.OR) { textFilter = PredicateExtensions.PredicateExtensions.Begin<AuditTrailEntry>(false); foreach (AuditTrailTextFilterParameter param in filterParameters) { textFilter = textFilter.Or(MakeSubjectNameFilterParameterExpression(param)); } } } return textFilter; }
private Expression <Func <AuditTrailEntry, bool> > MakeTimestampFilterExpression(AuditTrailFilterLogic filterLogic, List <AuditTrailDateFilterParameter> filterParameters) { Expression <Func <AuditTrailEntry, bool> > dateFilter = PredicateExtensions.PredicateExtensions.Begin <AuditTrailEntry>(true); if (filterParameters.Count > 0) { if (filterLogic == AuditTrailFilterLogic.AND) { foreach (AuditTrailDateFilterParameter param in filterParameters) { dateFilter = dateFilter.And(MakeTimestampFilterParameterExpression(param)); } } if (filterLogic == AuditTrailFilterLogic.OR) { dateFilter = PredicateExtensions.PredicateExtensions.Begin <AuditTrailEntry>(false); foreach (AuditTrailDateFilterParameter param in filterParameters) { dateFilter = dateFilter.Or(MakeTimestampFilterParameterExpression(param)); } } } return(dateFilter); }