Exemple #1
0
        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));
            });
        }
Exemple #2
0
 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");
 }
Exemple #3
0
        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);
            });
        }