public SchemaQuery(ExerciseService exercises, TrainingScheduleService trainingScheduleService, WorkshopService workshopService, WorkoutService workoutService, JourneyService journeyService) { Name = "Query"; Field <ListGraphType <ExerciseType> >( "exercises", resolve: context => exercises.GetExercisesAsync() ); Field <ListGraphType <TrainingScheduleType> >( "trainingSchedules", resolve: context => trainingScheduleService.GetTrainingSchedulesAsync() ); Field <ListGraphType <WorkshopType> >( "workshops", resolve: context => workshopService.GetWorkshopsAsync() ); Field <ListGraphType <WorkoutType> >( "workouts", resolve: context => workoutService.GetWorkoutsAsync() ); Field <ListGraphType <JourneyType> >( "journeys", resolve: context => journeyService.GetJourneysAsync() ); FieldAsync <ExerciseType>( "exercise", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "id" }), resolve: async context => { return(await context.TryAsyncResolve( async c => await exercises.GetExerciseByIdAsync(c.GetArgument <int>("id")) )); } ); FieldAsync <JourneyType>( "journey", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "id" }), resolve: async context => { return(await context.TryAsyncResolve( async c => await journeyService.GetJourneyByIdAsync(c.GetArgument <int>("id")) )); } ); FieldAsync <WorkoutType>( "workout", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "id" }), resolve: async context => { return(await context.TryAsyncResolve( async c => await workoutService.GetWorkoutAsync(c.GetArgument <int>("id")) )); } ); }