Esempio n. 1
0
        private void GenerateArgumentInvocation(
            FieldResolverArgumentDescriptor argumentDescriptor,
            StringBuilder source)
        {
            source.Append($"var {argumentDescriptor.VariableName} = ");
            switch (argumentDescriptor.Kind)
            {
            case FieldResolverArgumentKind.Argument:
                source.Append($"ctx.{nameof(IResolverContext.Argument)}<{GetTypeName(argumentDescriptor.Type)}>(\"{argumentDescriptor.Name}\")");
                break;

            case FieldResolverArgumentKind.Field:
                source.Append($"ctx.{nameof(IResolverContext.Field)}");
                break;

            case FieldResolverArgumentKind.FieldSelection:
                source.Append($"ctx.{nameof(IResolverContext.FieldSelection)}");
                break;

            case FieldResolverArgumentKind.ObjectType:
                source.Append($"ctx.{nameof(IResolverContext.ObjectType)}");
                break;

            case FieldResolverArgumentKind.OperationDefinition:
                source.Append($"ctx.{nameof(IResolverContext.Operation)}");
                break;

            case FieldResolverArgumentKind.QueryDocument:
                source.Append($"ctx.{nameof(IResolverContext.QueryDocument)}");
                break;

            case FieldResolverArgumentKind.Schema:
                source.Append($"ctx.{nameof(IResolverContext.Schema)}");
                break;

            case FieldResolverArgumentKind.Service:
                source.Append($"ctx.{nameof(IResolverContext.Service)}<{GetTypeName(argumentDescriptor.Type)}>()");
                break;

            case FieldResolverArgumentKind.Source:
                source.Append($"ctx.{nameof(IResolverContext.Parent)}<{GetTypeName(argumentDescriptor.Type)}>()");
                break;

            case FieldResolverArgumentKind.Context:
                source.Append($"ctx");
                break;

            case FieldResolverArgumentKind.CancellationToken:
                source.Append($"ct");
                break;

            default:
                throw new NotSupportedException();
            }
            source.Append(";");
        }
Esempio n. 2
0
 private bool IsArgumentType(Type argumentType)
 {
     return(FieldResolverArgumentDescriptor
            .LookupKind(argumentType, Member.ReflectedType) ==
            FieldResolverArgumentKind.Argument);
 }