Ejemplo n.º 1
0
        private static ObjectFieldDefinition CreateDefinition(ObjectFieldDescriptor descriptor)
        {
            ObjectFieldDefinition definition = descriptor.CreateDefinition();

            definition.IsIntrospectionField = true;
            return(definition);
        }
Ejemplo n.º 2
0
        public override void OnBeforeCompleteName(ITypeCompletionContext context, DefinitionBase?definitionBase, IDictionary <string, object?> contextData)
        {
            if (definitionBase is not ObjectTypeDefinition definition)
            {
                return;
            }

            if (definition.RuntimeType.IsSubclassOf(typeof(BaseEntity)))
            {
                foreach (PropertyInfo property in definition.RuntimeType.GetProperties())
                {
                    if (property.PropertyType != typeof(string) && typeof(IEnumerable).IsAssignableFrom(property.PropertyType) && property.PropertyType != typeof(NpgsqlTsVector))
                    {
                        ObjectFieldDefinition fieldDefinition = definition.Fields.First(e => e.Name == context.DescriptorContext.Naming.GetMemberName(property, MemberKind.ObjectField));
                        ObjectFieldDescriptor fieldDescriptor = ObjectFieldDescriptor.From(context.DescriptorContext, fieldDefinition);

                        fieldDescriptor
                        .UseSorting()
                        .UseFiltering();

                        int index = definition.Fields.IndexOf(fieldDefinition);
                        definition.Fields.RemoveAt(index);
                        definition.Fields.Insert(index, fieldDescriptor.CreateDefinition());
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public void UseSorting_WithoutTypeParam_ShouldRegisterPlaceholderMiddleware()
        {
            // arrange
            ObjectFieldDescriptor descriptor =
                ObjectFieldDescriptor.New(Context, "field");
            FieldMiddleware placeholder = next => context => default;

            // act
            descriptor.UseSorting <object>();

            // assert
            Assert.Single(descriptor.CreateDefinition().MiddlewareComponents);
        }
Ejemplo n.º 4
0
        public void UseSorting_WithoutParams_ShouldRegisterPlaceholderMiddleware()
        {
            // arrange
            ObjectFieldDescriptor descriptor = ObjectFieldDescriptor.New(Context, "field");

            descriptor.Resolve("abc");

            // act
            descriptor.UseSorting();

            // assert
            Assert.Single(descriptor.CreateDefinition().MiddlewareComponents);
        }
Ejemplo n.º 5
0
        public override void OnBeforeCompleteName(ITypeCompletionContext context, DefinitionBase?definitionBase, IDictionary <string, object?> contextData)
        {
            if (definitionBase is ObjectTypeDefinition objectTypeDefinition)
            {
                if (objectTypeDefinition.RuntimeType.IsSubclassOf(typeof(BaseEntity)))
                {
                    PropertyInfo idProperty = objectTypeDefinition.RuntimeType.GetProperty(nameof(BaseEntity.Id)) !;

                    ObjectFieldDefinition fieldDefinition = objectTypeDefinition.Fields.First(e => e.Name == context.DescriptorContext.Naming.GetMemberName(idProperty, MemberKind.ObjectField));
                    ObjectFieldDescriptor fieldDescriptor = ObjectFieldDescriptor.From(context.DescriptorContext, fieldDefinition);

                    fieldDescriptor
                    .IsProjected(true);

                    int index = objectTypeDefinition.Fields.IndexOf(fieldDefinition);
                    objectTypeDefinition.Fields.RemoveAt(index);
                    objectTypeDefinition.Fields.Insert(index, fieldDescriptor.CreateDefinition());
                }

                return;
            }
        }