Exemplo n.º 1
0
        public SkillAliasType(
            SkillRepository skillRepository,
            SkillAliasRepository skillAliasRepository
            )
        {
            Field(x => x.Id, type: typeof(IdGraphType));
            Field(x => x.Name);
            Field(x => x.Description, nullable: true);

            Field <SkillType>(
                "skill",
                resolve: context =>
            {
                if (context.Source.SkillId != null)
                {
                    return(skillRepository.GetById((Guid)context.Source.SkillId));
                }
                return(null);
            }
                );

            //// Async test
            //FieldAsync<SkillType>(
            //    "skill",
            //    resolve: async context =>
            //    {
            //        if (context.Source.SkillId != null) {
            //            return await context.TryAsyncResolve(
            //                async c => await skillRepository.GetByIdAsync((Guid)context.Source.SkillId)
            //            );
            //        }
            //
            //        return null;
            //    }
            //);

            Field(x => x.CreatedByUserId, type: typeof(IdGraphType));
            // TODO: Field(x => x.CreatedByUser, type: typeof(UserType));
            Field(x => x.ModifiedByUserId, type: typeof(IdGraphType));
            // TODO: Field(x => x.ModifiedByUser, type: typeof(UserType));
        }
Exemplo n.º 2
0
        public RJMQuery(
            DocumentRepository documentRepository,
            DocumentTypeRepository documentTypeRepository,
            ResumeRepository resumeRepository,
            ResumeStateRepository resumeStateRepository,
            SkillRepository skillRepository,
            SkillAliasRepository skillAliasRepository,
            JobRepository jobRepository,
            JobStateRepository jobStateRepository
            )
        {
            this.AuthorizeWith("Authorized");

            // Documents

            Field <ListGraphType <DocumentType> >(
                "documents",
                resolve: context => documentRepository.Get(null, x => x.OrderByDescending(x => x.ModifiedOn))
                );

            //// Async test
            //FieldAsync<ListGraphType<DocumentType>>(
            //    "documents",
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await documentRepository.GetAsync(null, x => x.OrderByDescending(x => x.ModifiedOn))
            //        );
            //    }
            //);

            Field <DocumentType>(
                "document",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "id"
            }),
                resolve: context => documentRepository.GetById(context.GetArgument <Guid>("id"))
                );

            //// Async test
            //FieldAsync<DocumentType>(
            //    "document",
            //    arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdGraphType>> { Name = "id" }),
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await documentRepository.GetByIdAsync(context.GetArgument<Guid>("id"))
            //        );
            //    }
            //);

            // DocumentTypes

            Field <ListGraphType <DocumentTypeType> >(
                "documentTypes",
                resolve: context => documentTypeRepository.Get(null, x => x.OrderByDescending(x => x.ModifiedOn))
                );

            //// Async test
            //FieldAsync<ListGraphType<DocumentTypeType>>(
            //    "documentTypes",
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await documentTypeRepository.GetAsync(null, x => x.OrderByDescending(x => x.ModifiedOn))
            //        );
            //    }
            //);

            Field <DocumentTypeType>(
                "documentType",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "id"
            }),
                resolve: context => documentTypeRepository.GetById(context.GetArgument <Guid>("id"))
                );

            //// Async test
            //FieldAsync<DocumentTypeType>(
            //    "documentType",
            //    arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdGraphType>> { Name = "id" }),
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await documentTypeRepository.GetByIdAsync(context.GetArgument<Guid>("id"))
            //        );
            //    }
            //);

            // Resumes

            Field <ListGraphType <ResumeType> >(
                "resumes",
                resolve: context => resumeRepository.Get(null, x => x.OrderByDescending(x => x.ModifiedOn))
                );

            //// Async test
            //FieldAsync<ListGraphType<ResumeType>>(
            //    "resumes",
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await resumeRepository.GetAsync(null, x => x.OrderByDescending(x => x.ModifiedOn))
            //        );
            //    }
            //);

            Field <ResumeType>(
                "resume",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "id"
            }),
                resolve: context => resumeRepository.GetById(context.GetArgument <Guid>("id"))
                );

            //// Async test
            //FieldAsync<ResumeType>(
            //    "resume",
            //    arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdGraphType>> { Name = "id" }),
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await resumeRepository.GetByIdAsync(context.GetArgument<Guid>("id"))
            //        );
            //    }
            //);

            // ResumeStates

            Field <ListGraphType <ResumeStateType> >(
                "resumeStates",
                resolve: context => resumeStateRepository.Get(null, x => x.OrderByDescending(x => x.ModifiedOn))
                );

            //// Async test
            //FieldAsync<ListGraphType<ResumeStateType>>(
            //    "resumeStates",
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await resumeStateRepository.GetAsync(null, x => x.OrderByDescending(x => x.ModifiedOn))
            //        );
            //    }
            //);

            Field <ResumeStateType>(
                "resumeState",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "id"
            }),
                resolve: context => resumeStateRepository.GetById(context.GetArgument <Guid>("id"))
                );

            //// Async test
            //FieldAsync<ResumeStateType>(
            //    "resumeState",
            //    arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdGraphType>> { Name = "id" }),
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await resumeStateRepository.GetByIdAsync(context.GetArgument<Guid>("id"))
            //        );
            //    }
            //);

            // Skills

            Field <ListGraphType <SkillType> >(
                "skills",
                resolve: context => skillRepository.Get(null, x => x.OrderByDescending(x => x.ModifiedOn))
                );

            //// Async test
            //FieldAsync<ListGraphType<SkillType>>(
            //    "skills",
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await skillRepository.GetAsync(null, x => x.OrderByDescending(x => x.ModifiedOn))
            //        );
            //    }
            //);

            Field <SkillType>(
                "skill",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "id"
            }),
                resolve: context => skillRepository.GetById(context.GetArgument <Guid>("id"))
                );

            //// Async test
            //FieldAsync<SkillType>(
            //    "skill",
            //    arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdGraphType>> { Name = "id" }),
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await skillRepository.GetByIdAsync(context.GetArgument<Guid>("id"))
            //        );
            //    }
            //);

            // SkillAliases

            Field <ListGraphType <SkillAliasType> >(
                "skillAliases",
                resolve: context => skillAliasRepository.Get(null, x => x.OrderByDescending(x => x.ModifiedOn))
                );

            //// Async test
            //FieldAsync<ListGraphType<SkillAliasType>>(
            //    "skillAliases",
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await skillAliasRepository.GetAsync(null, x => x.OrderByDescending(x => x.ModifiedOn))
            //        );
            //    }
            //);

            Field <SkillAliasType>(
                "skillAlias",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "id"
            }),
                resolve: context => skillAliasRepository.GetById(context.GetArgument <Guid>("id"))
                );

            //// Async test
            //FieldAsync<SkillAliasType>(
            //    "skillAlias",
            //    arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdGraphType>> { Name = "id" }),
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await skillAliasRepository.GetByIdAsync(context.GetArgument<Guid>("id"))
            //        );
            //    }
            //);

            // Jobs

            Field <ListGraphType <JobType> >(
                "jobs",
                resolve: context => jobRepository.Get(null, x => x.OrderByDescending(x => x.ModifiedOn))
                );

            //// Async test
            //FieldAsync<ListGraphType<JobType>>(
            //    "jobs",
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await jobRepository.GetAsync(null, x => x.OrderByDescending(x => x.ModifiedOn))
            //        );
            //    }
            //);

            Field <JobType>(
                "job",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "id"
            }),
                resolve: context => jobRepository.GetById(context.GetArgument <Guid>("id"))
                );

            //// Async test
            //FieldAsync<JobType>(
            //    "job",
            //    arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdGraphType>> { Name = "id" }),
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await jobRepository.GetByIdAsync(context.GetArgument<Guid>("id"))
            //        );
            //    }
            //);

            // JobStates

            Field <ListGraphType <JobStateType> >(
                "jobStates",
                resolve: context => jobStateRepository.Get(null, x => x.OrderByDescending(x => x.ModifiedOn))
                );

            //// Async test
            //FieldAsync<ListGraphType<JobStateType>>(
            //    "jobStates",
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await jobStateRepository.GetAsync(null, x => x.OrderByDescending(x => x.ModifiedOn))
            //        );
            //    }
            //);

            Field <JobStateType>(
                "jobState",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "id"
            }),
                resolve: context => jobStateRepository.GetById(context.GetArgument <Guid>("id"))
                );

            //// Async test
            //FieldAsync<JobStateType>(
            //    "jobState",
            //    arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdGraphType>> { Name = "id" }),
            //    resolve: async context =>
            //    {
            //        return await context.TryAsyncResolve(
            //            async c => await jobStateRepository.GetByIdAsync(context.GetArgument<Guid>("id"))
            //        );
            //    }
            //);
        }