Example #1
0
        public BingoQuery(UserRepository userRepository, GameRepository gameRepository)
        {
            //USERS-----------------------------------------
            Field <ListGraphType <UserType> >("users",
                                              arguments: new QueryArguments(
                                                  new QueryArgument <StringGraphType> {
                Name = "name"
            },
                                                  new QueryArgument <StringGraphType> {
                Name = "email"
            }
                                                  ),
                                              resolve: context => {
                return(userRepository.All(context));
            });
            Field <UserType>("user",
                             arguments: new QueryArguments(new QueryArgument <IdGraphType> {
                Name = "id"
            }),
                             resolve: context => {
                return(userRepository.Find(context.GetArgument <long>("id")));
            });
            Field <AuthResponseType>("login",
                                     arguments: new QueryArguments(new QueryArgument <NonNullGraphType <UserInputType> > {
                Name = "input"
            }),
                                     resolve: context => {
                return(userRepository.Login(context.GetArgument <User>("input")));
            });

            //GAMES-----------------------------------------

            Field <ListGraphType <GameType> >("games",
                                              arguments: new QueryArguments(
                                                  new QueryArgument <StringGraphType> {
                Name = "name"
            },
                                                  new QueryArgument <DateTimeGraphType> {
                Name = "startTime"
            },
                                                  new QueryArgument <StringGraphType> {
                Name = "link"
            },
                                                  new QueryArgument <IntGraphType> {
                Name = "playersNumber"
            },
                                                  new QueryArgument <IntGraphType> {
                Name = "gettedNumber"
            },
                                                  new QueryArgument <BooleanGraphType> {
                Name = "finished"
            }
                                                  ),
                                              resolve: context => {
                return(gameRepository.All(context));
            });
            Field <GameType>("game",
                             arguments: new QueryArguments(new QueryArgument <IdGraphType> {
                Name = "id"
            }),
                             resolve: context => {
                return(gameRepository.Find(context.GetArgument <long>("id")));
            });
            Field <GameType>("gameByLink",
                             arguments: new QueryArguments(new QueryArgument <StringGraphType> {
                Name = "link"
            }),
                             resolve: context => {
                return(gameRepository.GameByLink(context.GetArgument <string>("link")));
            });
        }