@@ -11,21 +11,13 @@ internal static class DataScopeQueryableExtensions
|
||||
Expression<Func<TEntity, bool>>? selfPredicate,
|
||||
Expression<Func<TEntity, bool>>? restrictedPredicate)
|
||||
{
|
||||
if (scope.Mode == DataScopeMode.All)
|
||||
{
|
||||
return query;
|
||||
}
|
||||
if (scope.Mode == DataScopeMode.All) return query;
|
||||
|
||||
Expression<Func<TEntity, bool>>? predicate = null;
|
||||
if (scope.IncludesSelf && selfPredicate is not null)
|
||||
{
|
||||
predicate = selfPredicate;
|
||||
}
|
||||
if (scope.IncludesSelf && selfPredicate is not null) predicate = selfPredicate;
|
||||
|
||||
if (scope.Mode == DataScopeMode.Restricted && restrictedPredicate is not null)
|
||||
{
|
||||
predicate = predicate is null ? restrictedPredicate : OrElse(predicate, restrictedPredicate);
|
||||
}
|
||||
|
||||
return predicate is null ? query.Where(_ => false) : query.Where(predicate);
|
||||
}
|
||||
@@ -40,8 +32,12 @@ internal static class DataScopeQueryableExtensions
|
||||
return Expression.Lambda<Func<TEntity, bool>>(Expression.OrElse(leftBody, rightBody), parameter);
|
||||
}
|
||||
|
||||
private sealed class ReplaceParameterVisitor(ParameterExpression source, ParameterExpression target) : ExpressionVisitor
|
||||
private sealed class ReplaceParameterVisitor(ParameterExpression source, ParameterExpression target)
|
||||
: ExpressionVisitor
|
||||
{
|
||||
protected override Expression VisitParameter(ParameterExpression node) => node == source ? target : base.VisitParameter(node);
|
||||
protected override Expression VisitParameter(ParameterExpression node)
|
||||
{
|
||||
return node == source ? target : base.VisitParameter(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user