Esempio n. 1
0
 public AnswerType(OrgData data)
 {
     Name = "Answer";
     Field <IdGraphType>("Id", resolve: context => context.Source.Id.ToString());
     Field <SessionType>("Session", resolve: context => data.GetSession(context.Source.SessionId));
     Field <QuestionType>("Question", resolve: context => data.GetQuestion(context.Source.QuestionId.ToString()));
     Field <AlternativeType>("Alternative", resolve: context => data.GetAlternative(
                                 context.Source.SessionId,
                                 context.Source.QuestionId,
                                 context.Source.AlternativeId
                                 ));
     Field <PublicUserDataType>("User", resolve: context => data.GetUser(context.Source.UserId.ToString()));
     Field <StringGraphType>("Value", resolve: context => context.Source.Value.ToString());
 }
Esempio n. 2
0
        public Queries(OrgData data, IHttpContextAccessor accessor)
        {
            Name = "Query";

            Field <ADUserType>("my", resolve: context => data.GetDirectoryEntry(accessor.HttpContext.User.Identity.Name.Split("\\")[1]));

            Field <ADUserType>(
                "directoryEntry",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> > {
                Name = "username", Description = "sAMAccountName of the directory entry"
            }
                    ),
                resolve: context => data.GetDirectoryEntry(context.GetArgument <string>("username"))
                );

            Field <ListGraphType <PublicUserDataType> >("users", resolve: context => data.GetAPHUsers());

            Field <PublicUserDataType>(
                "user",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> > {
                Name = "username", Description = "sAMAccountName of the user"
            }
                    ),
                resolve: context => data.GetUser(context.GetArgument <string>("username"))
                );

            Field <ListGraphType <MessageType> >(
                "messages",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> > {
                Name = "type", Description = "message type"
            }
                    ),
                resolve: context => data.GetMessages(accessor.HttpContext.User.Identity.Name.Split("\\")[1], context.GetArgument <string>("type"))
                );

            Field <ListGraphType <QuestionType> >(
                "questions",
                resolve: context => data.GetQuestions()
                );

            Field <ListGraphType <QuestionAnalysisType> >(
                "analyzeQuestion",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> >
            {
                Name        = "sessionId",
                Description = "session id"
            },
                    new QueryArgument <NonNullGraphType <StringGraphType> >
            {
                Name        = "questionId",
                Description = "question id"
            }
                    ),
                resolve: context => data.AnalyzeSessionQuestion(context.GetArgument <string>("sessionId"), context.GetArgument <string>("questionId"))
                );

            Field <ListGraphType <StringGraphType> >(
                "getRespondents",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> >
            {
                Name        = "sessionId",
                Description = "session id"
            },
                    new QueryArgument <NonNullGraphType <StringGraphType> >
            {
                Name        = "questionId",
                Description = "question id"
            }
                    ),
                resolve: context => data.GetRespondents(context.GetArgument <string>("sessionId"), context.GetArgument <string>("questionId"))
                );

            Field <QuestionType>(
                "question",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> >
            {
                Name        = "id",
                Description = "question id"
            }
                    ),
                resolve: context => data.GetQuestion(context.GetArgument <string>("id"))
                );

            Field <SessionType>(
                "session",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> >
            {
                Name        = "id",
                Description = "session id"
            }
                    ),
                resolve: context => data.GetSession(context.GetArgument <string>("id"))
                );

            Field <ListGraphType <SessionType> >(
                "sessions",
                resolve: context => data.GetSessions()
                );

            Field <ListGraphType <AnswerType> >(
                "answers",
                resolve: context => data.GetAnswers()
                );

            Field <ListGraphType <AnswerType> >(
                "answersForSessionQuestion",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> >
            {
                Name        = "sessionId",
                Description = "session id"
            },
                    new QueryArgument <NonNullGraphType <StringGraphType> >
            {
                Name        = "questionId",
                Description = "question id"
            }
                    ),
                resolve: context => data.GetAnswers(context.GetArgument <string>("sessionId"), context.GetArgument <string>("questionId"))
                );

            Field <ListGraphType <NewUserType> >(
                "newUsers",
                resolve: context => data.GetNewUsers()
                );
        }