Ejemplo n.º 1
0
 public static SchemaException SortProvider_NoOperationHandlersConfigured(
     ISortProvider sortProvider) =>
 new SchemaException(
     SchemaErrorBuilder.New()
     .SetMessage(
         DataResources.SortProvider_NoOperationHandlersConfigured,
         sortProvider.GetType().FullName ?? sortProvider.GetType().Name)
     .SetExtension(nameof(sortProvider), sortProvider)
     .Build());
Ejemplo n.º 2
0
 public static ISchemaError SortProvider_UnableToCreateOperationHandler(
     ISortProvider sortProvider,
     Type operationHandler) =>
 SchemaErrorBuilder.New()
 .SetMessage(
     DataResources.SortProvider_UnableToCreateOperationHandler,
     operationHandler.FullName ?? operationHandler.Name,
     sortProvider.GetType().FullName ?? sortProvider.GetType().Name)
 .SetExtension(nameof(sortProvider), sortProvider)
 .SetExtension(nameof(operationHandler), operationHandler)
 .Build();
Ejemplo n.º 3
0
        protected override void Complete(IConventionContext context)
        {
            if (Definition?.Provider is null)
            {
                throw SortConvention_NoProviderFound(GetType(), Definition?.Scope);
            }

            if (Definition.ProviderInstance is null)
            {
                _provider =
                    context.Services.GetOrCreateService <ISortProvider>(Definition.Provider) ??
                    throw SortConvention_NoProviderFound(GetType(), Definition.Scope);
            }
            else
            {
                _provider = Definition.ProviderInstance;
            }

            _namingConventions = context.DescriptorContext.Naming;

            _operations = Definition.Operations.ToDictionary(
                x => x.Id,
                SortOperation.FromDefinition);

            foreach (var operation in _operations.Values)
            {
                if (!operation.Name.HasValue)
                {
                    throw SortConvention_OperationIsNotNamed(this, operation);
                }
            }

            _bindings         = Definition.Bindings;
            _defaultBinding   = Definition.DefaultBinding;
            _inputTypeConfigs = Definition.Configurations;
            _enumTypeConfigs  = Definition.EnumConfigurations;
            _argumentName     = Definition.ArgumentName;

            if (_provider is ISortProviderConvention init)
            {
                IReadOnlyList <ISortProviderExtension> extensions =
                    CollectExtensions(context.Services, Definition);
                init.Initialize(context);
                MergeExtensions(context, init, extensions);
                init.Complete(context);
            }

            _typeInspector = context.DescriptorContext.TypeInspector;

            // It is important to always call base to continue the cleanup and the disposal of the
            // definition
            base.Complete(context);
        }
Ejemplo n.º 4
0
        protected override void OnComplete(
            IConventionContext context,
            SortConventionDefinition definition)
        {
            if (definition.Provider is null)
            {
                throw SortConvention_NoProviderFound(GetType(), definition.Scope);
            }

            if (definition.ProviderInstance is null)
            {
                _provider =
                    context.Services.GetOrCreateService <ISortProvider>(definition.Provider) ??
                    throw SortConvention_NoProviderFound(GetType(), definition.Scope);
            }
            else
            {
                _provider = definition.ProviderInstance;
            }

            _namingConventions = context.DescriptorContext.Naming;

            _operations = definition.Operations.ToDictionary(
                x => x.Id,
                SortOperation.FromDefinition);

            foreach (var operation in _operations.Values)
            {
                if (!operation.Name.HasValue)
                {
                    throw SortConvention_OperationIsNotNamed(this, operation);
                }
            }

            _bindings         = definition.Bindings;
            _defaultBinding   = definition.DefaultBinding;
            _inputTypeConfigs = definition.Configurations;
            _enumTypeConfigs  = definition.EnumConfigurations;
            _argumentName     = definition.ArgumentName;

            if (_provider is ISortProviderConvention init)
            {
                init.Initialize(context);
            }

            _typeInspector = context.DescriptorContext.TypeInspector;
        }
Ejemplo n.º 5
0
 public ProductService(ISortProvider sortProvider)
 {
     _sortProvider = sortProvider;
 }
Ejemplo n.º 6
0
 public QuickSortTest(ITestOutputHelper output)
 {
     _output       = output;
     _intSortor    = new QuickSortProvider <int>();
     _doubleSortor = new QuickSortProvider <double>();
 }