Example #1
0
            public DroidType(StarWarsData data)
            {
                Name        = "Droid";
                Description = "A mechanical creature in the Star Wars universe.";

                Field(d => d.Id).Description("The id of the droid.");
                Field(d => d.Name, nullable: true).Description("The name of the droid.");

                Field <ListGraphType <CharacterInterface> >(
                    "friends",
                    resolve: context => data.GetFriends(context.Source)
                    );
                Field <ListGraphType <EpisodeEnum> >("appearsIn", "Which movie they appear in.");
                Field(d => d.PrimaryFunction, nullable: true).Description("The primary function of the droid.");

                Interface <CharacterInterface>();
            }
Example #2
0
            public HumanType(StarWarsData data)
            {
                Name = "Human";

                Field(h => h.Id).Description("The id of the human.");
                Field(h => h.Name, nullable: true).Description("The name of the human.");

                Field <ListGraphType <CharacterInterface> >(
                    "friends",
                    resolve: context => data.GetFriends(context.Source)
                    );
                Field <ListGraphType <EpisodeEnum> >("appearsIn", "Which movie they appear in.");

                Field(h => h.HomePlanet, nullable: true).Description("The home planet of the human.");

                Interface <CharacterInterface>();
            }
        public StarWarsQuery(StarWarsData data)
        {
            Name = "Query";

            Field <CharacterInterface>("hero", resolve: context => data.GetDroidByIdAsync("3"));
            Field <HumanType>(
                "human",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> > {
                Name = "id", Description = "id of the human"
            }
                    ),
                resolve: context => data.GetHumanByIdAsync(context.GetArgument <string>("id"))
                );
            Field <DroidType>(
                "droid",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> > {
                Name = "id", Description = "id of the droid"
            }
                    ),
                resolve: context => data.GetDroidByIdAsync(context.GetArgument <string>("id"))
                );
        }