Example #1
0
 // Inspired by FilterConventionDescriptorExtensions#BindDefaultTypes
 // https://github.com/ChilliCream/hotchocolate/blob/ee5813646fdfea81035c681989793514f33b5d94/src/HotChocolate/Data/src/Data/Filters/Convention/Extensions/FilterConventionDescriptorExtensions.cs#L73
 public static IFilterConventionDescriptor BindDefaultTypes(
     this IFilterConventionDescriptor descriptor)
 {
     descriptor
     .BindRuntimeType <string, StringOperationFilterInputType>()
     .BindRuntimeType <bool, BooleanOperationFilterInputType>()
     .BindRuntimeType <bool?, BooleanOperationFilterInputType>()
     .BindComparableType <byte>("BytePropositionInput")
     .BindComparableType <short>("ShortPropositionInput")
     .BindComparableType <int>("IntPropositionInput")
     .BindComparableType <long>("LongPropositionInput")
     .BindComparableType <float>("FloatXPropositionInput")
     .BindComparableType <double>("FloatPropositionInput")
     .BindComparableType <decimal>("DecimalPropositionInput")
     .BindComparableType <sbyte>("SignedBytePropositionInput")
     .BindComparableType <ushort>("UnsignedShortPropositionInput")
     .BindComparableType <uint>("UnsignedIntPropositionInput")
     .BindComparableType <ulong>("UnsigendLongPropositionInput")
     .BindComparableType <Guid>("UuidPropositionInput")
     .BindComparableType <DateTime>("DateTimePropositionInput")
     .BindComparableType <DateTimeOffset>("DateTimeOffsetPropositionInput")
     .BindComparableType <TimeSpan>("TimeSpanPropositionInput");
     // TODO Why does this not work?
     // descriptor
     //     .Configure<StringOperationFilterInputType>(x => x.Name("StringPropositionInput"))
     //     .Configure<BooleanOperationFilterInputType>(x => x.Name("BooleanPropositionInput"));
     return(descriptor);
 }
Example #2
0
 public static IFilterConventionDescriptor UseDefaultOperations(
     this IFilterConventionDescriptor descriptor)
 {
     descriptor.Operation(Operations.Equals).Name("eq");
     descriptor.Operation(Operations.NotEquals).Name("neq");
     descriptor.Operation(Operations.GreaterThan).Name("gt");
     descriptor.Operation(Operations.NotGreaterThan).Name("ngt");
     descriptor.Operation(Operations.GreaterThanOrEquals).Name("gte");
     descriptor.Operation(Operations.NotGreaterThanOrEquals).Name("ngte");
     descriptor.Operation(Operations.LowerThan).Name("lt");
     descriptor.Operation(Operations.NotLowerThan).Name("nlt");
     descriptor.Operation(Operations.LowerThanOrEquals).Name("lte");
     descriptor.Operation(Operations.NotLowerThanOrEquals).Name("nlte");
     descriptor.Operation(Operations.Contains).Name("contains");
     descriptor.Operation(Operations.NotContains).Name("ncontains");
     descriptor.Operation(Operations.In).Name("in");
     descriptor.Operation(Operations.NotIn).Name("nin");
     descriptor.Operation(Operations.StartsWith).Name("startsWith");
     descriptor.Operation(Operations.NotStartsWith).Name("nstartsWith");
     descriptor.Operation(Operations.EndsWith).Name("endsWith");
     descriptor.Operation(Operations.NotEndsWith).Name("nendsWith");
     descriptor.Operation(Operations.All).Name("all");
     descriptor.Operation(Operations.None).Name("none");
     descriptor.Operation(Operations.Some).Name("some");
     descriptor.Operation(Operations.Any).Name("any");
     descriptor.Operation(Operations.And).Name("and");
     descriptor.Operation(Operations.Or).Name("or");
     return(descriptor);
 }
Example #3
0
 // Inspired by FilterConventionDescriptorExtensions#AddDefaultOperations
 // https://github.com/ChilliCream/hotchocolate/blob/ee5813646fdfea81035c681989793514f33b5d94/src/HotChocolate/Data/src/Data/Filters/Convention/Extensions/FilterConventionDescriptorExtensions.cs#L28
 public static IFilterConventionDescriptor AddDefaultOperations(
     this IFilterConventionDescriptor descriptor)
 {
     descriptor.Operation(DefaultFilterOperations.Equals).Name("equalTo");
     descriptor.Operation(DefaultFilterOperations.NotEquals).Name("notEqualTo");
     descriptor.Operation(DefaultFilterOperations.GreaterThan).Name("greaterThan");
     descriptor.Operation(DefaultFilterOperations.NotGreaterThan).Name("notGreaterThan");
     descriptor.Operation(DefaultFilterOperations.GreaterThanOrEquals).Name("greaterThanOrEqualTo");
     descriptor.Operation(DefaultFilterOperations.NotGreaterThanOrEquals).Name("notGreaterThanOrEqualTo");
     descriptor.Operation(DefaultFilterOperations.LowerThan).Name("lessThan");
     descriptor.Operation(DefaultFilterOperations.NotLowerThan).Name("lessThan");
     descriptor.Operation(DefaultFilterOperations.LowerThanOrEquals).Name("notLessThanOrEqualTo");
     descriptor.Operation(DefaultFilterOperations.NotLowerThanOrEquals).Name("notLessThanOrEqualTo");
     descriptor.Operation(DefaultFilterOperations.Contains).Name("contains");
     descriptor.Operation(DefaultFilterOperations.NotContains).Name("doesNotContain");
     descriptor.Operation(DefaultFilterOperations.In).Name("in");
     descriptor.Operation(DefaultFilterOperations.NotIn).Name("notIn");
     descriptor.Operation(DefaultFilterOperations.StartsWith).Name("startsWith");
     descriptor.Operation(DefaultFilterOperations.NotStartsWith).Name("doesNotStartWith");
     descriptor.Operation(DefaultFilterOperations.EndsWith).Name("endsWith");
     descriptor.Operation(DefaultFilterOperations.NotEndsWith).Name("doesNotEndWith");
     descriptor.Operation(DefaultFilterOperations.All).Name("all");
     descriptor.Operation(DefaultFilterOperations.None).Name("none");
     descriptor.Operation(DefaultFilterOperations.Some).Name("some");
     descriptor.Operation(DefaultFilterOperations.Any).Name("any");
     descriptor.Operation(DefaultFilterOperations.And).Name("and");
     descriptor.Operation(DefaultFilterOperations.Or).Name("or");
     descriptor.Operation(DefaultFilterOperations.Data).Name("data");
     descriptor.Operation(AdditionalFilterOperations.Not).Name("not");
     // TODO `inClosedInterval`
     return(descriptor);
 }
 protected override void Configure(
     IFilterConventionDescriptor descriptor)
 {
     descriptor
     .Types(x => x.Field <StringFieldConvention>())
     .Visitor(x => x.UseSpatial());
 }
Example #5
0
        /// <summary>
        /// Binds common runtime types to the according <see cref="FilterInputType"/>
        /// </summary>
        /// <param name="descriptor">The descriptor where the handlers are registered</param>
        /// <returns>The descriptor that was passed in as a parameter</returns>
        /// <exception cref="ArgumentNullException">
        /// Throws in case the argument <paramref name="descriptor"/> is null
        /// </exception>
        public static IFilterConventionDescriptor BindDefaultTypes(
            this IFilterConventionDescriptor descriptor)
        {
            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            return(descriptor
                   .BindRuntimeType <string, StringOperationFilterInputType>()
                   .BindRuntimeType <bool, BooleanOperationFilterInputType>()
                   .BindRuntimeType <bool?, BooleanOperationFilterInputType>()
                   .BindComparableType <byte>()
                   .BindComparableType <short>()
                   .BindComparableType <int>()
                   .BindComparableType <long>()
                   .BindComparableType <float>()
                   .BindComparableType <double>()
                   .BindComparableType <decimal>()
                   .BindComparableType <sbyte>()
                   .BindComparableType <ushort>()
                   .BindComparableType <uint>()
                   .BindComparableType <ulong>()
                   .BindComparableType <Guid>()
                   .BindComparableType <DateTime>()
                   .BindComparableType <DateTimeOffset>()
                   .BindComparableType <TimeSpan>());
        }
Example #6
0
        /// <summary>
        /// Adds default operations for Neo4j to the descriptor
        /// </summary>
        /// <param name="descriptor">The descriptor where the handlers are registered</param>
        /// <returns>The <paramref name="descriptor"/></returns>
        /// <exception cref="ArgumentNullException">
        /// Throws in case the argument <paramref name="descriptor"/> is null
        /// </exception>
        public static IFilterConventionDescriptor AddDefaultNeo4JOperations(
            this IFilterConventionDescriptor descriptor)
        {
            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            descriptor.Operation(DefaultFilterOperations.Equals).Name("eq");
            descriptor.Operation(DefaultFilterOperations.NotEquals).Name("neq");
            descriptor.Operation(DefaultFilterOperations.GreaterThan).Name("gt");
            descriptor.Operation(DefaultFilterOperations.NotGreaterThan).Name("ngt");
            descriptor.Operation(DefaultFilterOperations.GreaterThanOrEquals).Name("gte");
            descriptor.Operation(DefaultFilterOperations.NotGreaterThanOrEquals).Name("ngte");
            descriptor.Operation(DefaultFilterOperations.LowerThan).Name("lt");
            descriptor.Operation(DefaultFilterOperations.NotLowerThan).Name("nlt");
            descriptor.Operation(DefaultFilterOperations.LowerThanOrEquals).Name("lte");
            descriptor.Operation(DefaultFilterOperations.NotLowerThanOrEquals).Name("nlte");
            descriptor.Operation(DefaultFilterOperations.Contains).Name("contains");
            descriptor.Operation(DefaultFilterOperations.NotContains).Name("ncontains");
            descriptor.Operation(DefaultFilterOperations.In).Name("in");
            descriptor.Operation(DefaultFilterOperations.NotIn).Name("nin");
            descriptor.Operation(DefaultFilterOperations.StartsWith).Name("startsWith");
            descriptor.Operation(DefaultFilterOperations.NotStartsWith).Name("nstartsWith");
            descriptor.Operation(DefaultFilterOperations.EndsWith).Name("endsWith");
            descriptor.Operation(DefaultFilterOperations.NotEndsWith).Name("nendsWith");
            descriptor.Operation(DefaultFilterOperations.All).Name("all");
            descriptor.Operation(DefaultFilterOperations.None).Name("none");
            descriptor.Operation(DefaultFilterOperations.Some).Name("some");
            descriptor.Operation(DefaultFilterOperations.Any).Name("any");
            descriptor.Operation(DefaultFilterOperations.And).Name("and");
            descriptor.Operation(DefaultFilterOperations.Or).Name("or");

            return(descriptor);
        }
Example #7
0
        public static IFilterConventionDescriptor BindDefaultTypes(
            this IFilterConventionDescriptor descriptor)
        {
            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            descriptor.BindRuntimeType <string, StringOperationInput>();
            descriptor.BindRuntimeType <bool, BooleanOperationInput>();
            descriptor.BindRuntimeType <byte, ComparableOperationInput <byte> >();
            descriptor.BindRuntimeType <short, ComparableOperationInput <short> >();
            descriptor.BindRuntimeType <int, ComparableOperationInput <int> >();
            descriptor.BindRuntimeType <long, ComparableOperationInput <long> >();
            descriptor.BindRuntimeType <float, ComparableOperationInput <float> >();
            descriptor.BindRuntimeType <double, ComparableOperationInput <double> >();
            descriptor.BindRuntimeType <decimal, ComparableOperationInput <decimal> >();
            descriptor.BindRuntimeType <bool?, BooleanOperationInput>();
            descriptor.BindRuntimeType <byte?, ComparableOperationInput <byte?> >();
            descriptor.BindRuntimeType <short?, ComparableOperationInput <short?> >();
            descriptor.BindRuntimeType <int?, ComparableOperationInput <int?> >();
            descriptor.BindRuntimeType <long?, ComparableOperationInput <long?> >();
            descriptor.BindRuntimeType <float?, ComparableOperationInput <float?> >();
            descriptor.BindRuntimeType <double?, ComparableOperationInput <double?> >();
            descriptor.BindRuntimeType <decimal?, ComparableOperationInput <decimal?> >();
            descriptor.BindRuntimeType <Guid, ComparableOperationInput <Guid> >();
            descriptor.BindRuntimeType <DateTime, ComparableOperationInput <DateTime> >();
            descriptor.BindRuntimeType <DateTimeOffset, ComparableOperationInput <DateTimeOffset> >();
            descriptor.BindRuntimeType <TimeSpan, ComparableOperationInput <TimeSpan> >();

            return(descriptor);
        }
Example #8
0
    protected override void Configure(IFilterConventionDescriptor descriptor)
    {
        base.Configure(descriptor);

        descriptor
        .BindRuntimeType <RocketId, StronglyTypedIdOperationFilterInputType>()
        .BindRuntimeType <LaunchRecordId, StronglyTypedIdOperationFilterInputType>();
    }
Example #9
0
 public static IFilterConventionDescriptor UseImplicitFilters(
     this IFilterConventionDescriptor descriptor) =>
 descriptor
 .AddImplicitFilter(TryCreateStringFilter)
 .AddImplicitFilter(TryCreateBooleanFilter)
 .AddImplicitFilter(TryCreateComparableFilter)
 .AddImplicitFilter(TryCreateArrayFilter)
 .AddImplicitFilter(TryCreateObjectFilter);
Example #10
0
        public static IFilterExpressionVisitorDescriptor UseExpressionVisitor(
            this IFilterConventionDescriptor descriptor)
        {
            var desc = FilterExpressionVisitorDescriptor.New(descriptor);

            descriptor.Visitor(desc);
            return(desc);
        }
Example #11
0
 private static IFilterConventionDescriptor BindComparableType <T>(
     this IFilterConventionDescriptor descriptor)
     where T : struct
 {
     return(descriptor
            .BindRuntimeType <T, ComparableOperationFilterInputType <T> >()
            .BindRuntimeType <T?, ComparableOperationFilterInputType <T?> >());
 }
Example #12
0
 public static IFilterConventionDescriptor UseMock(
     this IFilterConventionDescriptor descriptor)
 {
     return(descriptor.AddDefaults().Provider(
                new QueryableFilterProvider(x => x
                                            .AddDefaultFieldHandlers()
                                            .AddFieldHandler <MatchAnyQueryableFieldHandler>())));
 }
 protected override void Configure(
     IFilterConventionDescriptor descriptor)
 {
     descriptor
     .OfType <Comparable>()
     .OfType <DateTime>()
     .Types(x => x.Field <StringFieldConvention>().UseSnakeCase())
     .Visitor <FilterDefinition <BsonDocument> >(x => x.UseSpatial());
 }
Example #14
0
 public static IFilterConventionDescriptor AddInvariantComparison(
     this IFilterConventionDescriptor conventionDescriptor)
 {
     return(conventionDescriptor
            .Configure <StringOperationFilterInputType>(x =>
                                                        x.Operation(CustomOperations.Like)
                                                        .Name("like")
                                                        ));
 }
 protected override void Configure(IFilterConventionDescriptor descriptor)
 {
     base.Configure(descriptor);
     descriptor.ArgumentName("test")
     .ElementName("TESTelement")
     .TypeName(
         (IDescriptorContext context, Type entityType) =>
         context.Naming.GetTypeName(entityType, TypeKind.Object)
         + "FilterTest");
 }
 protected override void Configure(IFilterConventionDescriptor descriptor)
 {
     descriptor.AddDefaults();
     descriptor.AddProviderExtension(new QueryableFilterProviderExtension(x => x
                                                                          .AddFieldHandler <NotEqualsHandler>()
                                                                          .AddFieldHandler <NotContainsHandler>()
                                                                          .AddFieldHandler <StartsWithHandler>()
                                                                          .AddFieldHandler <NotStartsWithHandler>()
                                                                          .AddFieldHandler <EndsWithHandler>()
                                                                          .AddFieldHandler <NotEndsWithHandler>()
                                                                          .AddFieldHandler <EqualsHandler>()
                                                                          .AddFieldHandler <ContainsHandler>()));
 }
Example #17
0
 public static IFilterConventionDescriptor UseDefault(
     this IFilterConventionDescriptor descriptor) =>
 descriptor.ArgumentName("where")
 .ElementName("element")
 .TypeName(FilterTypeName)
 .Description(FilterTypeDescription)
 .Type(FilterKind.Array)
 .Operation(FilterOperationKind.ArrayAll).And()
 .Operation(FilterOperationKind.ArrayAny).And()
 .Operation(FilterOperationKind.ArraySome).And()
 .Operation(FilterOperationKind.ArrayNone).And()
 .And()
 .Type(FilterKind.Boolean)
 .Operation(FilterOperationKind.Equals).And()
 .Operation(FilterOperationKind.NotEquals).And()
 .And()
 .Type(FilterKind.Comparable)
 .Operation(FilterOperationKind.Equals).And()
 .Operation(FilterOperationKind.NotEquals).And()
 .Operation(FilterOperationKind.In).And()
 .Operation(FilterOperationKind.NotIn).And()
 .Operation(FilterOperationKind.GreaterThan).And()
 .Operation(FilterOperationKind.NotGreaterThan).And()
 .Operation(FilterOperationKind.GreaterThanOrEquals).And()
 .Operation(FilterOperationKind.NotGreaterThanOrEquals).And()
 .Operation(FilterOperationKind.LowerThan).And()
 .Operation(FilterOperationKind.NotLowerThan).And()
 .Operation(FilterOperationKind.LowerThanOrEquals).And()
 .Operation(FilterOperationKind.NotLowerThanOrEquals).And()
 .And()
 .Type(FilterKind.Object)
 .Operation(FilterOperationKind.Object).And()
 .And()
 .Type(FilterKind.String)
 .Operation(FilterOperationKind.Equals).And()
 .Operation(FilterOperationKind.NotEquals).And()
 .Operation(FilterOperationKind.Contains).And()
 .Operation(FilterOperationKind.NotContains).And()
 .Operation(FilterOperationKind.StartsWith).And()
 .Operation(FilterOperationKind.NotStartsWith).And()
 .Operation(FilterOperationKind.EndsWith).And()
 .Operation(FilterOperationKind.NotEndsWith).And()
 .Operation(FilterOperationKind.In).And()
 .Operation(FilterOperationKind.NotIn).And()
 .And()
 .UseSnakeCase()
 .UseImplicitFilters()
 .UseExpressionVisitor()
 .UseDefault()
 .And();
 protected override void Configure(IFilterConventionDescriptor descriptor)
 {
     descriptor.AddDefaults();
     descriptor.Provider(
         new QueryableFilterProvider(x => x
                                     .AddDefaultFieldHandlers()
                                     .AddFieldHandler <QueryableStringInvariantContainsHandler>()));
     descriptor
     .Configure <StringOperationFilterInputType>(_ => _
                                                 .Operation(DefaultFilterOperations.Contains)
                                                 .Type <StringType>()
                                                 .Extend()
                                                 .OnBeforeCreate(p => p.Handler = new QueryableStringInvariantContainsHandler()));
 }
Example #19
0
        /// <summary>
        /// Adds the spatial filter defaults
        /// </summary>
        public static IFilterConventionDescriptor AddSpatialDefaults(
            this IFilterConventionDescriptor descriptor)
        {
            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            descriptor.AddSpatialOperations();
            descriptor.BindSpatialTypes();
            descriptor.AddProviderExtension(
                new QueryableFilterProviderExtension(p => p.AddSpatialHandlers()));

            return(descriptor);
        }
Example #20
0
 // Inspired by FilterConventionDescriptorExtensions#FilterConventionDescriptorExtensions
 // https://github.com/ChilliCream/hotchocolate/blob/ee5813646fdfea81035c681989793514f33b5d94/src/HotChocolate/Data/src/Data/Filters/Convention/Extensions/FilterConventionDescriptorExtensions.cs#L102
 private static IFilterConventionDescriptor BindComparableType <T>(
     this IFilterConventionDescriptor descriptor,
     string?name = null)
     where T : struct
 {
     descriptor
     .BindRuntimeType <T, ComparableOperationFilterInputType <T> >()
     .BindRuntimeType <T?, ComparableOperationFilterInputType <T?> >();
     // TODO Why does this not work?
     // if (name is not null)
     // {
     //     descriptor
     //         .Configure<ComparableOperationFilterInputType<T>>(x => x.Name(name))
     //         .Configure<ComparableOperationFilterInputType<T?>>(x => x.Name($"Maybe{name}"));
     // }
     return(descriptor);
 }
Example #21
0
 protected override void Configure(IFilterConventionDescriptor descriptor)
 {
     descriptor.AddDefaults();
     // Use argument name `where`
     descriptor.ArgumentName("where");
     // Allow conjunction and disjunction
     descriptor.AllowAnd();
     descriptor.AllowOr();
     // Bind custom types
     descriptor.BindRuntimeType <Data.GetHttpsResource, GraphQl.GetHttpsResources.GetHttpsResourceFilterType>();
     descriptor.BindRuntimeType <Data.NamedMethodArgument, GraphQl.NamedMethodArgumentFilterType>();
     descriptor.BindRuntimeType <Data.CalorimetricData, GraphQl.CalorimetricDataX.CalorimetricDataFilterType>();
     descriptor.BindRuntimeType <Data.IData, GraphQl.DataX.DataFilterType>();
     descriptor.BindRuntimeType <Data.HygrothermalData, GraphQl.HygrothermalDataX.HygrothermalDataFilterType>();
     descriptor.BindRuntimeType <Data.OpticalData, GraphQl.OpticalDataX.OpticalDataFilterType>();
     descriptor.BindRuntimeType <Data.PhotovoltaicData, GraphQl.PhotovoltaicDataX.PhotovoltaicDataFilterType>();
 }
Example #22
0
 public static IFilterConventionDescriptor UseDefaultFields(
     this IFilterConventionDescriptor descriptor)
 {
     descriptor.Binding <string, StringOperationInput>();
     descriptor.Binding <bool, BooleanOperationInput>();
     descriptor.Binding <byte, ComparableOperationInput <byte> >();
     descriptor.Binding <short, ComparableOperationInput <short> >();
     descriptor.Binding <int, ComparableOperationInput <int> >();
     descriptor.Binding <long, ComparableOperationInput <long> >();
     descriptor.Binding <float, ComparableOperationInput <float> >();
     descriptor.Binding <double, ComparableOperationInput <double> >();
     descriptor.Binding <decimal, ComparableOperationInput <decimal> >();
     descriptor.Binding <Guid, ComparableOperationInput <Guid> >();
     descriptor.Binding <DateTime, ComparableOperationInput <DateTime> >();
     descriptor.Binding <DateTimeOffset, ComparableOperationInput <DateTimeOffset> >();
     descriptor.Binding <TimeSpan, ComparableOperationInput <TimeSpan> >();
     return(descriptor);
 }
Example #23
0
        protected override void Configure(IFilterConventionDescriptor descriptor)
        {
            descriptor.Operation(123).Name("example").Description("This is a example");
            descriptor.Operation(DefaultOperations.Contains)
            .Name("_contains")
            .Description("This is a example");

            descriptor.ArgumentName("custom");

            descriptor.BindRuntimeType <Address, AddressFilterInputType>();

            descriptor.Configure <StringOperationFilterInput>(
                x => x.Field("test").Type <StringType>());

            descriptor.AddDefaults();

            descriptor.Provider <CustomProvider>();
        }
        /// <summary>
        /// The default names of the spatial filter operations
        /// </summary>
        public static IFilterConventionDescriptor AddSpatialOperations(
            this IFilterConventionDescriptor descriptor)
        {
            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            descriptor.Operation(SpatialFilterOperations.Contains).Name("contains");
            descriptor.Operation(SpatialFilterOperations.Distance).Name("distance");
            descriptor.Operation(SpatialFilterOperations.Intersects).Name("intersects");
            descriptor.Operation(SpatialFilterOperations.Overlaps).Name("overlaps");
            descriptor.Operation(SpatialFilterOperations.Touches).Name("touches");
            descriptor.Operation(SpatialFilterOperations.Within).Name("within");
            descriptor.Operation(SpatialFilterOperations.Buffer).Name("buffer");
            descriptor.Operation(SpatialFilterOperations.Geometry).Name("geometry");

            return(descriptor);
        }
Example #25
0
        /// <summary>
        /// The fields and operations available to each type
        /// </summary>
        public static IFilterConventionDescriptor BindSpatialTypes(
            this IFilterConventionDescriptor descriptor)
        {
            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            descriptor
            .BindRuntimeType <Geometry, GeometryFilterInputType>()
            .BindRuntimeType <Point, PointFilterInputType>()
            .BindRuntimeType <MultiPoint, MultiPointFilterInputType>()
            .BindRuntimeType <LineString, LineStringFilterInputType>()
            .BindRuntimeType <MultiLineString, MultiLineStringFilterInputType>()
            .BindRuntimeType <Polygon, PolygonFilterInputType>()
            .BindRuntimeType <MultiPolygon, MultiPolygonFilterInputType>();

            return(descriptor);
        }
        protected override void Configure(IFilterConventionDescriptor descriptor)
        {
            descriptor.AddDefaults();

            //descriptor.AddInvariantComparison();

            descriptor
            .Configure <StringOperationFilterInputType>(
                x => x
                .Operation(CustomOperations.Like)
                .Type <StringType>()
                );

            descriptor
            .Operation(CustomOperations.Like).Name("like");

            descriptor.AddProviderExtension(
                new QueryableFilterProviderExtension(
                    x => x
                    .AddFieldHandler <QueryableStringInvariantLikeHandler>()));
        }
 protected FilterExpressionVisitorDescriptor(
     IFilterConventionDescriptor convention)
 {
     _convention = convention;
 }
Example #28
0
 protected override void Configure(IFilterConventionDescriptor descriptor)
 {
     descriptor.Operation(DefaultOperations.Equals).Name("eq");
 }
 protected virtual void Configure(IFilterConventionDescriptor descriptor)
 {
 }
Example #30
0
 public static IFilterConventionDescriptor AddDefaults(
     this IFilterConventionDescriptor descriptor) =>
 descriptor.AddDefaultOperations().BindDefaultTypes().UseQueryableProvider();