通过Rally C#API获取项目列表

时间:2016-08-07 16:49:22

标签: c# rally

我需要一种方法来使用C#检索项目列表。

尝试做这样的事情:

    DynamicJsonObject sub = restApi.GetSubscription("Projects");
        //query the project collection
        Request wRequest = new Request(sub["Projects"]);
        QueryResult queryResult = restApi.Query(wRequest);

        return queryResult.Results.Select(result => new Project()
        {
            Id = result["ObjectID"],
            Name = result["Name"]
        }).ToList();

遗憾的是没有成功。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

下面的代码应该打印用于对其帐户进行身份验证的用户有权访问的工作区和项目。

            DynamicJsonObject sub = restApi.GetSubscription("Workspaces");

            Request wRequest = new Request(sub["Workspaces"]);
            wRequest.Limit = 1000;
            QueryResult queryResult = restApi.Query(wRequest);
            int allProjects = 0;
            foreach (var result in queryResult.Results)
            {
                var workspaceReference = result["_ref"];
                var workspaceName = result["Name"];
                Console.WriteLine("Workspace: " + workspaceName);
                Request projectsRequest = new Request(result["Projects"]);
                projectsRequest.Fetch = new List<string>()
                {
                    "Name"
                };
                projectsRequest.Limit = 10000; //project requests are made per workspace
                QueryResult queryProjectResult = restApi.Query(projectsRequest);
                int projectsPerWorkspace = 0;
                foreach (var p in queryProjectResult.Results)
                {
                    allProjects++;
                    projectsPerWorkspace++;
                    Console.WriteLine(projectsPerWorkspace + " Project: " + p["Name"] + " State: " + p["State"]);
                } 
            }
            Console.WriteLine("Returned " + allProjects + " projects in the subscription");