Ejemplo n.º 1
0
 private static ISchemaErrorBuilder SetField(
     this ISchemaErrorBuilder errorBuilder,
     IField field,
     string name = "field") =>
 errorBuilder
 .AddSyntaxNode(field.SyntaxNode)
 .SetExtension(name, field);
Ejemplo n.º 2
0
 public static ISchemaErrorBuilder SpecifiedBy(
     this ISchemaErrorBuilder errorBuilder,
     string section,
     bool condition = true)
 {
     if (condition)
     {
         errorBuilder.SetExtension(
             "specifiedBy",
             "http://spec.graphql.org/June2018/#" + section);
     }
     return(errorBuilder);
 }
Ejemplo n.º 3
0
        public static ISchemaErrorBuilder SetMessage(
            this ISchemaErrorBuilder builder,
            string format,
            params object[] args)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.SetMessage(string.Format(
                                          CultureInfo.InvariantCulture,
                                          format,
                                          args)));
        }
Ejemplo n.º 4
0
        private void CollectErrors()
        {
            foreach (TypeDiscoveryContext context in
                     _typeRegistry.Types.Select(t => t.DiscoveryContext))
            {
                _errors.AddRange(context.Errors);
            }

            IReadOnlyCollection <ITypeReference> unresolved = _typeRegistrar.GetUnresolved();

            if (_errors.Count == 0 && unresolved.Count > 0)
            {
                foreach (ITypeReference unresolvedReference in _typeRegistrar.GetUnresolved())
                {
                    var types = _typeRegistry.Types.Where(
                        t => t.Dependencies.Select(d => d.TypeReference)
                        .Any(r => r.Equals(unresolvedReference))).ToList();

                    ISchemaErrorBuilder builder =
                        SchemaErrorBuilder.New()
                        .SetMessage(
                            TypeResources.TypeRegistrar_TypesInconsistent,
                            unresolvedReference)
                        .SetExtension(

                            TypeErrorFields.Reference,
                            unresolvedReference)
                        .SetCode(ErrorCodes.Schema.UnresolvedTypes);

                    if (types.Count == 1)
                    {
                        builder.SetTypeSystemObject(types[0].Type);
                    }
                    else if (types.Count > 1)
                    {
                        builder
                        .SetTypeSystemObject(types[0].Type)
                        .SetExtension("involvedTypes", types.Select(t => t.Type).ToList());
                    }

                    _errors.Add(builder.Build());
                }
            }
        }
Ejemplo n.º 5
0
 private static ISchemaErrorBuilder SetSpecifiedBy(
     this ISchemaErrorBuilder errorBuilder,
     bool isInterface) =>
 errorBuilder
 .SpecifiedBy(_interfaceTypeValidation, isInterface)
 .SpecifiedBy(_objectTypeValidation, !isInterface);
Ejemplo n.º 6
0
 private static ISchemaErrorBuilder SetImplementedArgument(
     this ISchemaErrorBuilder errorBuilder,
     IInputField field) =>
 errorBuilder.SetField(field, "implementedArgument");
Ejemplo n.º 7
0
 private static ISchemaErrorBuilder SetImplementedField(
     this ISchemaErrorBuilder errorBuilder,
     IOutputField field) =>
 errorBuilder.SetField(field, "implementedField");
Ejemplo n.º 8
0
 private static ISchemaErrorBuilder SetImplementedType(
     this ISchemaErrorBuilder errorBuilder,
     IComplexOutputType type) =>
 errorBuilder
 .AddSyntaxNode(type.SyntaxNode)
 .SetExtension("implementedType", type);
Ejemplo n.º 9
0
 private static ISchemaErrorBuilder SetType(
     this ISchemaErrorBuilder errorBuilder,
     IComplexOutputType type) =>
 errorBuilder
 .AddSyntaxNode(type.SyntaxNode)
 .SetTypeSystemObject((TypeSystemObjectBase)type);