private static ObjectFieldDefinition CreateDefinition(ObjectFieldDescriptor descriptor) { ObjectFieldDefinition definition = descriptor.CreateDefinition(); definition.IsIntrospectionField = true; return(definition); }
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()); } } } }
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); }
public void UseSorting_WithoutParams_ShouldRegisterPlaceholderMiddleware() { // arrange ObjectFieldDescriptor descriptor = ObjectFieldDescriptor.New(Context, "field"); descriptor.Resolve("abc"); // act descriptor.UseSorting(); // assert Assert.Single(descriptor.CreateDefinition().MiddlewareComponents); }
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; } }