public static Expression <Func <T, bool> > SummaryQueueCustomFilterExpression <T>(QueueFilter queueFilter, params Func <Filter, Expression <Func <T, bool> > >[] customFilterExpressions) where T : Summary { var filter = (queueFilter != null && queueFilter.Filter1 != null) ? queueFilter.Filter1 : null; if (filter == null || string.IsNullOrEmpty(filter.Value)) { return(summary => true); } QueueMap queueFieldMap; if (GetQueueMapping <T>(filter.FieldName, out queueFieldMap)) { return(null); } if (queueFieldMap == null || !queueFieldMap.CustomFilter) { return(summary => true); } if (filter.FieldName == "agency") { return(SummeryQueueCustomExpressions <T> .AgencyExpression(filter)); } if (customFilterExpressions != null) { foreach (var e in customFilterExpressions) { Expression <Func <T, bool> > result = e(filter); if (result != null) { return(result); } } } return(summary => true); }
public static Expression <Func <ArrestSummary, bool> > ArrestQueueCustomFilterExpression(QueueFilter queueFilter) { return(SummaryQueueCustomFilterExpression <ArrestSummary>(queueFilter, f => (f.FieldName == "reportingOfficerName" || f.FieldName == "reportingOfficerId") ? SummeryQueueCustomExpressions <ArrestSummary> .ReportingOfficerExpression(f) : null, f => (f.FieldName == "supplementingOfficerName" || f.FieldName == "supplementingOfficerId") ? SummeryQueueCustomExpressions <ArrestSummary> .SupplementingOfficerExpression(f) : null)); }
public static Expression <Func <IncidentSummary, bool> > IncidentQueueCustomFilterExpression(QueueFilter queueFilter) { return(SummaryQueueCustomFilterExpression <IncidentSummary>(queueFilter, f => (f.FieldName == "reportingOfficerName" || f.FieldName == "reportingOfficerId") ? SummeryQueueCustomExpressions <IncidentSummary> .ReportingOfficerExpression(f) : null, f => (f.FieldName == "assistingOfficerName" || f.FieldName == "assistingOfficerId")?SummeryQueueCustomExpressions <IncidentSummary> .OfficerExpression(f, OfficerInvolvementTypes.Assisting.Code):null, f => (f.FieldName == "approvingOfficerName" || f.FieldName == "approvingOfficerId")?SummeryQueueCustomExpressions <IncidentSummary> .OfficerExpression(f, OfficerInvolvementTypes.Approving.Code):null, f => (f.FieldName == "investigatingOfficerName" || f.FieldName == "investigatingOfficerId")?SummeryQueueCustomExpressions <IncidentSummary> .OfficerExpression(f, OfficerInvolvementTypes.Investigating.Code):null, f => (f.FieldName == "supplementingOfficerName" || f.FieldName == "supplementingOfficerId") ? SummeryQueueCustomExpressions <IncidentSummary> .SupplementingOfficerExpression(f) : null )); }