예제 #1
0
        public VehicleGraphType(Swapi api)
        {
            _api = api;

            Name = "Vehicle";

            Field(p => p.Id, nullable: true);
            Field(p => p.Name);
            Field(p => p.Model);
            Field(p => p.Manufacturer);
            Field(p => p.CostInCredits);
            Field(p => p.Length);
            Field(p => p.MaxAtmospheringSpeed);
            Field(p => p.Crew);
            Field(p => p.Passengers);
            Field(p => p.CargoCapacity);
            Field(p => p.VehicleClass);
            Field(p => p.Consumables);

            Connection <PeopleGraphType>()
            .Name("pilots")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <People>(ctx.Source.Pilots)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );

            Connection <FilmGraphType>()
            .Name("films")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <Films>(ctx.Source.Films)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx, 1, 10))
                     );
        }
예제 #2
0
        public PlanetGraphType(Swapi api)
        {
            _api = api;

            Name = "Planet";

            Field(p => p.Id, nullable: true);
            Field(p => p.Name);
            Field(p => p.RotationPeriod);
            Field(p => p.OrbitalPeriod);
            Field(p => p.Diameter);
            Field(p => p.Climate);
            Field(p => p.Gravity);
            Field(p => p.Terrain);
            Field(p => p.SurfaceWater);
            Field(p => p.Population);

            Connection <PeopleGraphType>()
            .Name("residents")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <People>(ctx.Source.Residents)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );

            Connection <FilmGraphType>()
            .Name("films")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <Films>(ctx.Source.Films)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );
        }
예제 #3
0
        public FilmGraphType(Swapi api)
        {
            _api = api;

            Name = "Film";

            //Id(p => p.Id);
            Field(p => p.Id);
            Field(p => p.Title);
            Field(p => p.EpisodeId);
            Field(p => p.OpeningCrawl);
            Field(p => p.Director);
            Field(p => p.Producer);
            Field(p => p.ReleaseDate);

            Connection <PeopleGraphType>()
            .Name("characters")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <People>(ctx.Source.Characters)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );

            Connection <PlanetGraphType>()
            .Name("planets")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <Planets>(ctx.Source.Planets)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );

            Connection <SpeciesGraphType>()
            .Name("species")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <Species>(ctx.Source.Species)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );

            Connection <StarshipGraphType>()
            .Name("starships")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <Starships>(ctx.Source.Starships)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );

            Connection <VehicleGraphType>()
            .Name("vehicles")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <Vehicles>(ctx.Source.Vehicles)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );
        }
예제 #4
0
        public PeopleGraphType(Swapi api)
        {
            _api = api;

            Name = "People";

            Field(p => p.Id, nullable: true);
            Field(p => p.Name);
            Field(p => p.Height);
            Field(p => p.Mass);
            Field(p => p.HairColor);
            Field(p => p.SkinColor);
            Field(p => p.EyeColor);
            Field(p => p.BirthYear);
            Field(p => p.Gender);
            Field(
                name: "homeworld",
                type: typeof(PlanetGraphType),
                resolve: ctx => _api.GetEntity <Planets>(ctx.Source.Homeworld)
                );

            Connection <FilmGraphType>()
            .Name("films")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <Films>(ctx.Source.Films)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );


            Connection <SpeciesGraphType>()
            .Name("species")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <Species>(ctx.Source.Species)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );

            Connection <StarshipGraphType>()
            .Name("starships")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <Starships>(ctx.Source.Starships)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );

            Connection <VehicleGraphType>()
            .Name("vehicles")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <Vehicles>(ctx.Source.Vehicles)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );
        }
예제 #5
0
        public SpeciesGraphType(Swapi api)
        {
            _api = api;

            Name = "Species";

            Field(p => p.Id, nullable: true);
            Field(p => p.Name);

            Field(p => p.Classification);
            Field(p => p.Designation);
            Field(p => p.AverageHeight);
            Field(p => p.SkinColors);
            Field(p => p.HairColors);
            Field(p => p.EyeColors);
            Field(p => p.AverageLifespan);
            Field(p => p.Language);
            Field(
                name: "homeworld",
                type: typeof(PlanetGraphType),
                resolve: ctx => _api.GetEntity <Planets>(ctx.Source.Homeworld)
                );

            Connection <PeopleGraphType>()
            .Name("people")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <People>(ctx.Source.People)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );

            Connection <FilmGraphType>()
            .Name("films")
            .Unidirectional()
            .Resolve(ctx => api
                     .GetMany <Films>(ctx.Source.Films)
                     .ContinueWith(t => ConnectionUtils.ToConnection(t.Result, ctx))
                     );
        }