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;
        }
Esempio n. 2
0
        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);
        }