示例#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);
 }
示例#2
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>());
        }
示例#3
0
 private static IFilterConventionDescriptor BindComparableType <T>(
     this IFilterConventionDescriptor descriptor)
     where T : struct
 {
     return(descriptor
            .BindRuntimeType <T, ComparableOperationFilterInputType <T> >()
            .BindRuntimeType <T?, ComparableOperationFilterInputType <T?> >());
 }
示例#4
0
    protected override void Configure(IFilterConventionDescriptor descriptor)
    {
        base.Configure(descriptor);

        descriptor
        .BindRuntimeType <RocketId, StronglyTypedIdOperationFilterInputType>()
        .BindRuntimeType <LaunchRecordId, StronglyTypedIdOperationFilterInputType>();
    }
示例#5
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);
 }
示例#6
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>();
        }
示例#7
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>();
 }
示例#8
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);
        }
        /// <summary>
        /// Binds common runtime types to the according <see cref="FilterInputType"/> that are
        /// supported by MongoDb
        /// </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 BindDefaultMongoDbTypes(
            this IFilterConventionDescriptor descriptor)
        {
            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            descriptor
            .BindRuntimeType <string, StringOperationFilterInputType>()
            .BindRuntimeType <bool, BooleanOperationFilterInputType>()
            .BindRuntimeType <byte, ComparableOperationFilterInputType <byte> >()
            .BindRuntimeType <short, ComparableOperationFilterInputType <short> >()
            .BindRuntimeType <int, ComparableOperationFilterInputType <int> >()
            .BindRuntimeType <long, ComparableOperationFilterInputType <long> >()
            .BindRuntimeType <float, ComparableOperationFilterInputType <float> >()
            .BindRuntimeType <double, ComparableOperationFilterInputType <double> >()
            .BindRuntimeType <decimal, ComparableOperationFilterInputType <decimal> >()
            .BindRuntimeType <ObjectId, ComparableOperationFilterInputType <ObjectId> >()
            .BindRuntimeType <Guid, ComparableOperationFilterInputType <Guid> >()
            .BindRuntimeType <DateTime, ComparableOperationFilterInputType <DateTime> >()
            .BindRuntimeType <DateTimeOffset, ComparableOperationFilterInputType <DateTimeOffset>
                              >()
            .BindRuntimeType <TimeSpan, ComparableOperationFilterInputType <TimeSpan> >()
            .BindRuntimeType <bool?, BooleanOperationFilterInputType>()
            .BindRuntimeType <byte?, ComparableOperationFilterInputType <byte?> >()
            .BindRuntimeType <short?, ComparableOperationFilterInputType <short?> >()
            .BindRuntimeType <int?, ComparableOperationFilterInputType <int?> >()
            .BindRuntimeType <long?, ComparableOperationFilterInputType <long?> >()
            .BindRuntimeType <float?, ComparableOperationFilterInputType <float?> >()
            .BindRuntimeType <double?, ComparableOperationFilterInputType <double?> >()
            .BindRuntimeType <decimal?, ComparableOperationFilterInputType <decimal?> >()
            .BindRuntimeType <ObjectId?, ComparableOperationFilterInputType <ObjectId?> >()
            .BindRuntimeType <Guid?, ComparableOperationFilterInputType <Guid?> >()
            .BindRuntimeType <DateTime?, ComparableOperationFilterInputType <DateTime?> >()
            .BindRuntimeType <DateTimeOffset?,
                              ComparableOperationFilterInputType <DateTimeOffset?> >()
            .BindRuntimeType <TimeSpan?, ComparableOperationFilterInputType <TimeSpan?> >();

            return(descriptor);
        }