public void ApplyConfigurations( ITypeReference typeReference, ISortEnumTypeDescriptor descriptor) { if (_enumTypeConfigs.TryGetValue( typeReference, out List <ConfigureSortEnumType>?configurations)) { foreach (ConfigureSortEnumType configure in configurations) { configure(descriptor); } } }
private void ConfigureSortEnumType( ITypeDiscoveryContext discoveryContext, SortEnumTypeDefinition definition) { ISortConvention convention = GetConvention( discoveryContext.DescriptorContext, discoveryContext.Scope); ISortEnumTypeDescriptor descriptor = SortEnumTypeDescriptor.From( discoveryContext.DescriptorContext, definition); SchemaTypeReference typeReference = TypeReference.Create( discoveryContext.Type, discoveryContext.Scope); convention.ApplyConfigurations(typeReference, descriptor); foreach (var enumValue in definition.Values) { if (enumValue is SortEnumValueDefinition sortEnumValueDefinition) { if (convention.TryGetOperationHandler( discoveryContext, definition, sortEnumValueDefinition, out ISortOperationHandler? handler)) { sortEnumValueDefinition.Handler = handler; } else { throw ThrowHelper.SortInterceptor_NoOperationHandlerFoundForValue( definition, sortEnumValueDefinition); } } } }
protected override void Configure(ISortEnumTypeDescriptor descriptor) { descriptor.Operation(DefaultSortOperations.Ascending); }
protected virtual void Configure(ISortEnumTypeDescriptor descriptor) { }