protected override void VisitLessOrEqual(LdapLessOrEqualFilter filter) { base.VisitLessOrEqual(filter); if (filter.Assertion.Attribute.Options.Count > 0) { _inner.Push(Expression.Constant(false)); return; } var attribute = filter.Assertion.Attribute.Oid; var property = GetProperty(attribute); if (property == null) { _inner.Push(Expression.Constant(false)); return; } var value = Encoding.UTF8.GetString(filter.Assertion.Value.Span); if (!property.Type.IsAssignableFrom(typeof(string))) { throw new NotImplementedException("we have only string properties"); } var compare = Expression.Call(null, _stringCompare, property, Expression.Constant(value)); _inner.Push(Expression.LessThanOrEqual(compare, Expression.Constant(0))); }
protected virtual void VisitLessOrEqual(LdapLessOrEqualFilter filter) { }