public Query(TVDbContext dbContext) { this.dbContext = dbContext; Name = "Query"; Field <ListGraphType <ShowType> >( "shows", arguments: new QueryArguments( new QueryArgument <IdGraphType> { Name = "id" }, new QueryArgument <IntGraphType> { Name = "skip" }, new QueryArgument <IntGraphType> { Name = "take" } ), resolve: context => { var id = context.GetArgument <int>("id"); var skip = context.GetArgument <int>("skip"); var take = context.GetArgument <int>("take"); if (id > 0) { return(GetShowById(id)); } return(GetShows(skip, take)); }); }
public EpisodeType(TVDbContext dbContext) { Field(e => e.Id).Description("Episode Id"); Field(e => e.Name).Description("Episode Title"); Field(e => e.SeasonNumber).Description("Which season the episode aired in"); Field(e => e.EpisodeNumber).Description("The episode number for the season"); }
public ShowType(TVDbContext dbContext) { Field(s => s.Id).Description("Show Id"); Field(s => s.Name, nullable: false).Description("Show Title"); Field <ListGraphType <EpisodeType> >( name: "episodes", description: "All episodes", arguments: new QueryArguments( new QueryArgument <IntGraphType> { Name = "skip" }, new QueryArgument <IntGraphType> { Name = "take" }, new QueryArgument <IntGraphType> { Name = "season" } ), resolve: context => { var skip = context.GetArgument <int>("skip"); var take = context.GetArgument <int>("take"); var season = context.GetArgument <int>("season"); IQueryable <Episode> es = dbContext .Episodes .Where(e => e.ShowId == context.Source.Id); if (season > 0) { es = es.Where(e => e.SeasonNumber == season); } if (skip > 0) { es = es.Skip(skip); } if (take > 0) { es = es.Take(take); } return(es); }); }