예제 #1
0
        public ViewerType(Core.Data.IAdminRoleRepository adminRoleRepository,
                          Core.Data.IAdminUserRepository adminUserRepository)
        {
            Name        = "Viewer";
            Description = "Root Query";

            Field <ListGraphType <AdminRoleType> >(
                "AdminRoles",
                description: "Role Detail for Admin Site by id",
                arguments: new QueryArguments(
                    new QueryArgument <IntGraphType> {
                Name = "id", Description = "id of the droid"
            }
                    ),
                resolve: context =>
            {
                var id          = context.GetArgument <int?>("id");
                var userContext = context.UserContext.As <GraphQLUserContext>();
                if (id != null)
                {
                    IList <AdminRole> adminRoles = new List <AdminRole>();
                    var adminRole = adminRoleRepository.Get(id.Value).Result;
                    if (adminRole != null)
                    {
                        adminRoles.Add(adminRole);
                    }

                    return(adminRoles);
                }
                else
                {
                    return(adminRoleRepository.GetAll().Result);
                }
            }
                );

            Field <ListGraphType <AdminUserType> >(
                "AdminUsers",
                description: "List of Users for Admin Site",
                arguments: new QueryArguments(
                    new QueryArgument <IntGraphType> {
                Name = "id", Description = "id of the user"
            }
                    ),
                resolve: context =>
            {
                var userContext = context.UserContext.As <GraphQLUserContext>();

                var id = context.GetArgument <string>("id");
                if (id != null)
                {
                    IList <AdminUser> adminUsers = new List <AdminUser>();
                    var adminUser = adminUserRepository.Get(id).Result;
                    if (adminUser != null)
                    {
                        adminUsers.Add(adminUser);
                    }

                    return(adminUsers);
                }

                else
                {
                    return(adminUserRepository.GetAll().Result);
                }
            }
                );
        }