public override ExpressionResult VisitGqlcall(EntityGraphQLParser.GqlcallContext context) { var fieldName = context.method.GetText(); var argList = context.gqlarguments.children.Where(c => c.GetType() == typeof(EntityGraphQLParser.GqlargContext)).Cast <EntityGraphQLParser.GqlargContext>(); IMethodType methodType = schemaProvider.GetFieldType(currentContext, fieldName, argList.Select(a => a.gqlfield.GetText().ToLower())); var args = argList.ToDictionary(a => a.gqlfield.GetText(), a => { fieldArgumentContext = methodType; var r = VisitGqlarg(a); fieldArgumentContext = null; return(r); }, StringComparer.OrdinalIgnoreCase); if (schemaProvider.HasMutation(fieldName)) { return(MakeMutationExpression(fieldName, (MutationType)methodType, args)); } return(MakeFieldExpression(fieldName, args)); }
public override ExpressionResult VisitGqlcall(EntityGraphQLParser.GqlcallContext context) { var fieldName = context.method.GetText(); var argList = context.gqlarguments.children.Where(c => c.GetType() == typeof(EntityGraphQLParser.GqlargContext)).Cast <EntityGraphQLParser.GqlargContext>(); IMethodType methodType = schemaProvider.GetFieldOnContext(currentContext, fieldName, claims); var args = argList.ToDictionary(a => a.gqlfield.GetText(), a => { var argName = a.gqlfield.GetText(); if (!methodType.Arguments.ContainsKey(argName)) { throw new EntityGraphQLCompilerException($"No argument '{argName}' found on field '{methodType.Name}'"); } fieldArgumentContext = methodType; var r = VisitGqlarg(a); fieldArgumentContext = null; return(r); }); if (schemaProvider.HasMutation(fieldName)) { return(MakeMutationExpression((MutationType)methodType, args)); } return(MakeFieldExpression(fieldName, args)); }
public override string VisitGqlcall(EntityGraphQLParser.GqlcallContext context) { return(context.method.GetText()); }