Esempio n. 1
0
        public IFilterFieldDescriptor Operation <TField>(Expression <Func <T, TField> > method)
        {
            if (method.ExtractMember() is MethodInfo m)
            {
                FilterFieldDescriptor fieldDescriptor =
                    Fields.FirstOrDefault(t => t.Definition.Member == m);

                if (fieldDescriptor is { })
        /// <inheritdoc />
        public IFilterFieldDescriptor Field(NameString name)
        {
            FilterFieldDescriptor?fieldDescriptor =
                Fields.FirstOrDefault(t => t.Definition.Name == name);

            if (fieldDescriptor is null)
            {
                fieldDescriptor = FilterFieldDescriptor.New(Context, name, Definition.Scope);
                Fields.Add(fieldDescriptor);
            }

            return(fieldDescriptor);
        }
Esempio n. 3
0
        protected override void OnCompleteFields(
            IDictionary <NameString, InputFieldDefinition> fields,
            ISet <PropertyInfo> handledProperties)
        {
            if (Definition.Fields.IsImplicitBinding())
            {
                FieldDescriptorUtilities.AddImplicitFields(
                    this,
                    p => FilterFieldDescriptor
                    .New(Context, Definition.Scope, p)
                    .CreateDefinition(),
                    fields,
                    handledProperties);
            }

            base.OnCompleteFields(fields, handledProperties);
        }
        /// <inheritdoc />
        public IFilterInputTypeDescriptor Ignore(NameString name)
        {
            FilterFieldDescriptor?fieldDescriptor =
                Fields.FirstOrDefault(t => t.Definition.Name == name);

            if (fieldDescriptor is null)
            {
                fieldDescriptor = FilterFieldDescriptor.New(
                    Context,
                    name,
                    Definition.Scope);
                Fields.Add(fieldDescriptor);
            }

            fieldDescriptor.Ignore();
            return(this);
        }
Esempio n. 5
0
        protected override void OnCompleteFields(
            IDictionary <NameString, FilterFieldDefinition> fields,
            ISet <MemberInfo> handledProperties)
        {
            if (Definition.Fields.IsImplicitBinding())
            {
                FieldDescriptorUtilities.AddImplicitFields(
                    this,
                    Definition.EntityType,
                    p => FilterFieldDescriptor
                    .New(Context, Definition.Scope, p)
                    .CreateDefinition(),
                    fields,
                    handledProperties,
                    include: (members, member) => member is PropertyInfo);
            }

            base.OnCompleteFields(fields, handledProperties);
        }
Esempio n. 6
0
        /// <inheritdoc />
        public IFilterFieldDescriptor Field <TField>(Expression <Func <T, TField> > property)
        {
            if (property.ExtractMember() is PropertyInfo m)
            {
                FilterFieldDescriptor?fieldDescriptor =
                    Fields.FirstOrDefault(t => t.Definition.Member == m);

                if (fieldDescriptor is null)
                {
                    fieldDescriptor = FilterFieldDescriptor.New(Context, Definition.Scope, m);
                    Fields.Add(fieldDescriptor);
                }

                return(fieldDescriptor);
            }

            throw new ArgumentException(
                      FilterInputTypeDescriptor_Field_OnlyProperties,
                      nameof(property));
        }
Esempio n. 7
0
        /// <inheritdoc />
        public IFilterInputTypeDescriptor <T> Ignore(Expression <Func <T, object?> > property)
        {
            if (property.ExtractMember() is PropertyInfo p)
            {
                FilterFieldDescriptor?fieldDescriptor =
                    Fields.FirstOrDefault(t => t.Definition.Member == p);

                if (fieldDescriptor is null)
                {
                    fieldDescriptor = FilterFieldDescriptor.New(Context, Definition.Scope, p);
                    Fields.Add(fieldDescriptor);
                }

                fieldDescriptor.Ignore();
                return(this);
            }

            throw new ArgumentException(
                      FilterInputTypeDescriptor_Field_OnlyProperties,
                      nameof(property));
        }