示例#1
0
        private static void HandleObjectType(
            ITypeCompletionContext completionContext,
            ObjectTypeDefinition definition,
            ISpatialConvention convention)
        {
            foreach (var field in definition.Fields)
            {
                foreach (var arg in field.Arguments)
                {
                    if (completionContext.IsNamedType <IGeoJsonInputType>(arg.Type))
                    {
                        arg.Formatters.Add(
                            new GeometryTransformerInputFormatter(
                                convention.TransformerFactory,
                                convention.DefaultSrid));
                    }
                }

                if (completionContext.IsNamedType <IGeoJsonObjectType>(field.Type))
                {
                    var argument =
                        ArgumentDescriptor.New(
                            completionContext.DescriptorContext,
                            CrsFieldName);

                    argument
                    .Type <IntType>()
                    .Description(Transformation_Argument_Crs_Description);

                    field.Arguments.Add(argument.CreateDefinition());
                    field.MiddlewareComponents.Insert(0,
                                                      FieldClassMiddlewareFactory.Create <GeometryTransformationMiddleware>(
                                                          (typeof(IGeometryTransformerFactory), convention.TransformerFactory),
                                                          (typeof(int), convention.DefaultSrid)));
                }
            }
        }
示例#2
0
 private static void HandleDirectiveType(
     ITypeCompletionContext completionContext,
     DirectiveTypeDefinition definition,
     ISpatialConvention convention)
 {
     foreach (var arg in definition.Arguments)
     {
         if (completionContext.IsNamedType <IGeoJsonInputType>(arg.Type))
         {
             arg.Formatters.Add(
                 new GeometryTransformerInputFormatter(
                     convention.TransformerFactory,
                     convention.DefaultSrid));
         }
     }
 }
示例#3
0
 private static void HandleInputObjectType(
     ITypeCompletionContext completionContext,
     InputObjectTypeDefinition definition,
     ISpatialConvention convention)
 {
     foreach (var field in definition.Fields)
     {
         if (completionContext.IsNamedType <IGeoJsonInputType>(field.Type))
         {
             field.Formatters.Add(
                 new GeometryTransformerInputFormatter(
                     convention.TransformerFactory,
                     convention.DefaultSrid));
         }
     }
 }