Exemple #1
0
 protected internal FilterInputTypeDescriptor(
     IDescriptorContext context,
     FilterInputTypeDefinition definition,
     string?scope)
     : base(context, definition, scope)
 {
 }
        public override void OnBeforeRegisterDependencies(
            ITypeDiscoveryContext discoveryContext,
            DefinitionBase?definition,
            IDictionary <string, object?> contextData)
        {
            if (definition is FilterInputTypeDefinition def)
            {
                IFilterConvention convention = GetConvention(
                    discoveryContext.DescriptorContext,
                    def.Scope);

                SchemaTypeReference typeReference = TypeReference.Create(
                    discoveryContext.Type,
                    def.Scope);

                var descriptor = FilterInputTypeDescriptor.New(
                    discoveryContext.DescriptorContext,
                    def.EntityType,
                    def.Scope);

                convention.ApplyConfigurations(typeReference, descriptor);

                FilterInputTypeDefinition extensionDefinition = descriptor.CreateDefinition();

                discoveryContext.RegisterDependencies(extensionDefinition);
            }
        }
Exemple #3
0
        public bool TryGetHandler(
            ITypeDiscoveryContext context,
            FilterInputTypeDefinition typeDefinition,
            FilterFieldDefinition fieldDefinition,
            [NotNullWhen(true)] out IFilterFieldHandler?handler)
        {
            foreach (IFilterFieldHandler filterFieldHandler in _provider.FieldHandlers)
            {
                if (filterFieldHandler.CanHandle(context, typeDefinition, fieldDefinition))
                {
                    handler = filterFieldHandler;
                    return(true);
                }
            }

            handler = null;
            return(false);
        }
        public static void MergeFilterInputTypeDefinitions(
            ITypeCompletionContext context,
            FilterInputTypeDefinition extensionDefinition,
            FilterInputTypeDefinition typeDefinition)
        {
            TypeExtensionHelper.MergeContextData(
                extensionDefinition,
                typeDefinition);

            TypeExtensionHelper.MergeDirectives(
                context,
                extensionDefinition.Directives,
                typeDefinition.Directives);

            MergeFilterFieldDefinitions(
                context,
                extensionDefinition.Fields,
                typeDefinition.Fields);

            TypeExtensionHelper.MergeConfigurations(
                extensionDefinition.Configurations,
                typeDefinition.Configurations);
        }
 /// <inheritdoc />
 public abstract bool CanHandle(
     ITypeDiscoveryContext context,
     FilterInputTypeDefinition typeDefinition,
     FilterFieldDefinition fieldDefinition);
 public override bool CanHandle(
     ITypeDiscoveryContext context,
     FilterInputTypeDefinition typeDefinition,
     FilterFieldDefinition fieldDefinition) => true;