Query() public method

Perform a read against the WSAPI operation based on the data in the specified request
Rally returned an HTML page. This usually occurs when Rally is off-line. Please check the ErrorMessage property for more information. The JSON returned by Rally was not able to be deserialized. Please check the JsonData property for what was returned by Rally.
public Query ( Request request ) : QueryResult
request Request The request configuration
return QueryResult
コード例 #1
2
        static void Main(string[] args)
        {
            RallyRestApi restApi;
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");

            String projectRef = "/project/12352608219";
            Request defectRequest = new Request("Defect");
            defectRequest.Project = projectRef;
            defectRequest.Fetch = new List<string>()
                {
                    "Name",
            "FormattedID",
                    "Tasks"
                };

            defectRequest.Query = new Query("FormattedID", Query.Operator.Equals, "DE8");
            QueryResult defectResults = restApi.Query(defectRequest);
            String defRef = defectResults.Results.First()._ref;
            String defName = defectResults.Results.First().Name;
            Console.WriteLine(defName + " " + defRef);
            DynamicJsonObject defect = restApi.GetByReference(defRef, "Name", "FormattedID", "Tasks");
            String taskCollectionRef = defect["Tasks"]._ref;
            Console.WriteLine(taskCollectionRef);

            ArrayList taskList = new ArrayList();

            foreach (var d in defectResults.Results)
            {
                Request tasksRequest = new Request(d["Tasks"]);
                QueryResult tasksResult = restApi.Query(tasksRequest);
                foreach (var t in tasksResult.Results)
                {
                    var tName = t["Name"];
                    var tFormattedID = t["FormattedID"];
                    Console.WriteLine("Task: " + tName + " " + tFormattedID);
                    DynamicJsonObject task = new DynamicJsonObject();
                    task["_ref"] = t["_ref"];
                    taskList.Add(task);
                }
            }

            Console.WriteLine("Count of elements in the collection before adding a new task: " + taskList.Count);

            DynamicJsonObject newTask = new DynamicJsonObject();
            newTask["Name"] = "another last task";
            newTask["WorkProduct"] = defRef;
            CreateResult createResult = restApi.Create(projectRef, "Task", newTask);
            newTask = restApi.GetByReference(createResult.Reference, "FormattedID", "Name", "WorkProduct");
            Console.WriteLine(newTask["FormattedID"] + " " + newTask["Name"] + " WorkProduct:" + newTask["WorkProduct"]["FormattedID"]);
            taskList.Add(newTask);

            Console.WriteLine("Count of elements in the array after adding a new task: " + taskList.Count);
            defect["Tasks"] = taskList;
            OperationResult updateResult = restApi.Update(defRef, defect);
        }
コード例 #2
1
        static void Main(string[] args)
        {
            RallyRestApi restApi = new RallyRestApi(webServiceVersion: "v2.0");
            String apiKey = "_abc123";
            restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false);

            String[] workspaces = new String[] { "/workspace/12352608129", "/workspace/34900020610" };

            foreach (var s in workspaces)
            {
                Console.WriteLine(" ______________ " + s + " _________________");
                Request typedefRequest = new Request("TypeDefinition");
                typedefRequest.Workspace = s;
                typedefRequest.Fetch = new List<string>() { "ElementName", "Ordinal" };
                typedefRequest.Query = new Query("Parent.Name", Query.Operator.Equals, "Portfolio Item");
                QueryResult typedefResponse = restApi.Query(typedefRequest);

                foreach (var t in typedefResponse.Results)
                {

                    if (t["Ordinal"] > -1)
                    {
                        Console.WriteLine("ElementName: " + t["ElementName"] + " Ordinal: " + t["Ordinal"]);
                    }
                }
            }
        }
        static void Main(string[] args)
        {
            //Initialize the REST API
            RallyRestApi restApi;
            //with this user I get hundreds of workspaces - this is a subadmin
            restApi = new RallyRestApi("*****@*****.**", "supersecret", "https://rally1.rallydev.com", "v2.0");
            //with this user I get only two workspaces
            //restApi = new RallyRestApi("*****@*****.**", "scret", "https://rally1.rallydev.com", "v2.0");

            /***************THIS CODE PRINTS OUT ALL WORKSPACES AND PROJECTS IN THE SUB ******************************/

            //get the current subscription
            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",
            "State",
                };
                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("----------------------------");
            }
            Console.WriteLine("Returned " + allProjects + " projects in the subscription");
        }
        static void Main(string[] args)
        {
            //Initialize the REST API using API KEYd
            RallyRestApi restApi;
            restApi = new RallyRestApi("_abc123", "https://rally1.rallydev.com");

            DateTime now = DateTime.Today;
            DateTime checkback = now.AddDays(-2); //last two days
            String checkbackString = checkback.ToString("yyyy-MM-dd");

            //get the subscription
            DynamicJsonObject sub = restApi.GetSubscription("Workspaces");

            Request wRequest = new Request(sub["Workspaces"]);
            wRequest.Limit = 1000;
            QueryResult queryResult = restApi.Query(wRequest);
            foreach (var result in queryResult.Results)
            {
                var workspaceReference = result["_ref"];
                var workspaceName = result["Name"];
                Request projectsRequest = new Request(result["Projects"]);
                projectsRequest.Fetch = new List<string>()
                {
                    "Name"
                };
                projectsRequest.Limit = 1000;
                QueryResult queryProjectResult = restApi.Query(projectsRequest);
                foreach (var p in queryProjectResult.Results)
                {
                    Request artifactRequest = new Request("artifact");
                    artifactRequest.Project = p["_ref"];
                    artifactRequest.Query = new Query("LastUpdateDate", Query.Operator.GreaterThanOrEqualTo, checkbackString);
                    QueryResult queryResults = restApi.Query(artifactRequest);
                    if (queryResults.TotalResultCount > 0)
                    {
                        Console.WriteLine("Project: " + p["Name"] + " (Workspace " + workspaceName + ")");
                    }

                }
            }
        }
        static void Main(string[] args)
        {
            int storyCount = 0;
            int taskCount = 0;
            RallyRestApi restApi;
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");

            String workspaceRef = "/workspace/1234";     //replace this OID with an OID of your workspace

            Request sRequest = new Request("HierarchicalRequirement");
            sRequest.Workspace = workspaceRef;
            sRequest.Fetch = new List<string>() { "FormattedID", "Name", "Tasks", "Release", "Project", "Owner" };
            sRequest.Query = new Query("Release.Name", Query.Operator.Equals, "r1").And(new Query("Owner", Query.Operator.Equals, "*****@*****.**"));
            QueryResult queryResults = restApi.Query(sRequest);

            foreach (var s in queryResults.Results)
            {
                Console.WriteLine("FormattedID: " + s["FormattedID"] + " Name: " + s["Name"] + " Release: " + s["Release"]._refObjectName + " Project: " + s["Project"]._refObjectName + " Owner: " + s["Owner"]._refObjectName);
                storyCount++;
                Request tasksRequest = new Request(s["Tasks"]);
                QueryResult queryTaskResult = restApi.Query(tasksRequest);
                foreach (var t in queryTaskResult.Results)
                {
                    Console.WriteLine("Task: " + t["FormattedID"] + " State: " + t["State"]);
                    taskCount++;
                }
            }
            Console.WriteLine(storyCount + " stories, "+  taskCount + " tasks ");
        }
        static void Main(string[] args)
        {
            int storyCount = 0;
            int taskCount = 0;
            RallyRestApi restApi;
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");

            String workspaceRef = "/workspace/12352608129";     //replace this OID with an OID of your workspace

            Request sRequest = new Request("HierarchicalRequirement");
            sRequest.Workspace = workspaceRef;
            sRequest.Fetch = new List<string>() { "FormattedID", "Name", "Tasks", "Iteration"};
            sRequest.Query = new Query("(Iteration.StartDate <= Today)").And(new Query("(Iteration.EndDate >= Today)"));
            QueryResult queryResults = restApi.Query(sRequest);

            foreach (var s in queryResults.Results)
            {
                Console.WriteLine("FormattedID: " + s["FormattedID"] + " Name: " + s["Name"]);
                storyCount++;
                Request tasksRequest = new Request(s["Tasks"]);
                QueryResult queryTaskResult = restApi.Query(tasksRequest);
                foreach (var t in queryTaskResult.Results)
                {
                    Console.WriteLine("Task: " + t["FormattedID"] + " State: " + t["State"]);
                    taskCount++;
                }
            }
            Console.WriteLine(storyCount + " stories, " + taskCount + " tasks ");
        }
        static void Main(string[] args)
        {
            RallyRestApi restApi;
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");
            String projectRef = "/project/12352608219";
            Request request = new Request("TestSet");
            request.Project = projectRef;
            request.Fetch = new List<string>()
            {
                "Name",
                "FormattedID",
                "TestCases"
            };
            request.Query = new Query("FormattedID", Query.Operator.Equals, "TS31");
            QueryResult result = restApi.Query(request);

            String testsetRef = result.Results.First()._ref;
            DynamicJsonObject testset = restApi.GetByReference(testsetRef, "TestCases");
            Request request2 = new Request(testset["TestCases"]);
            request2.Fetch = new List<string>()
            {
                "Name",
                "FormattedID"
            };
            request2.Limit = 1000;
            QueryResult result2 = restApi.Query(request2);
            int caseCount = 0;
            foreach (var testcase in result2.Results)
            {
                Console.WriteLine("TestCase: " + testcase["FormattedID"]);
                caseCount++;
            }
            Console.WriteLine(caseCount);
        }
コード例 #8
0
        public List<dynamic> GetStories(string currentRunTime, string projectRef)
        {
            List<dynamic> returnValue;
            RallyRestApi rallyApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");
            Request request = new Request("HierarchicalRequirement");
            request.Project = projectRef;
            request.ProjectScopeUp = false;
            request.ProjectScopeDown = false;
            request.PageSize = 200;
            try
            {

                QueryResult qr = rallyApi.Query(request);
                var results = qr.Results;
                returnValue = results.ToList();
                while (results.Count() == 200)
                {
                    Console.WriteLine("inside while loop...  " + results.Count());
                    request.Start = returnValue.Count + 1;
                    results = rallyApi.Query(request).Results;
                    returnValue.AddRange(results);
                }
                Console.WriteLine("total results returned...  " + returnValue.Count);
            }
            catch (Exception)
            {
                throw;
            }

            return returnValue;
        }
        static void Main(string[] args)
        {
            RallyRestApi restApi;
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");

            String workspaceRef = "/workspace/12345";     //replace this OID with an OID of your workspace

            DateTime today = DateTime.Today;
            DateTime checkback = today.AddDays(-2); //last two days
            String checkbackString = checkback.ToString("yyyy-MM-dd");

            Request sRequest = new Request("HierarchicalRequirement");
            sRequest.Workspace = workspaceRef;
            sRequest.Fetch = new List<string>() { "Name", "FormattedID", "RevisionHistory", "Revisions", "LastUpdateDate" };
            sRequest.Query = new Query("LastUpdateDate", Query.Operator.GreaterThanOrEqualTo, checkbackString);
            QueryResult queryResults = restApi.Query(sRequest);

            foreach (var s in queryResults.Results)
            {
                Console.WriteLine("**********************************************************");
                Console.WriteLine("FormattedID: " + s["FormattedID"] + " Name: " + s["Name"]);
                Console.WriteLine("**********************************************************");
                String historyRef = s["RevisionHistory"]._ref;
                Request revisionsRequest = new Request("Revisions");
                revisionsRequest.Query = new Query("RevisionHistory", Query.Operator.Equals, historyRef);
                revisionsRequest.Fetch = new List<string>() { "User", "Description", "RevisionNumber", "CreationDate" };
                QueryResult revisionsResults = restApi.Query(revisionsRequest);
                foreach (var r in revisionsResults.Results)
                {
                    Console.WriteLine("-------------------------------------------------------");
                    Console.WriteLine("Description: " + r["Description"] + " Author: " + r["User"]._refObjectName + " CreationDate: " + r["CreationDate"]);

                }
            }
        }
コード例 #10
0
        static void Main(string[] args)
        {
            RallyRestApi restApi = new RallyRestApi(webServiceVersion: "v2.0");
            String apiKey = "_abc123";
            restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false);
            String workspaceRef = "/workspace/123";
            String projectRef = "/project/456";

            Request request = new Request("PortfolioItem/Feature");
            request.Fetch = new List<string>() { "Name", "FormattedID" };
            request.Query = new Query("FormattedID", Query.Operator.Equals, "F2356");
            QueryResult result = restApi.Query(request);

            String featureRef = result.Results.First()._ref;
            Console.WriteLine("found" + featureRef);

            //create stories
            try
            {
                for (int i = 1; i <= 25; i++)
                {
                    DynamicJsonObject story = new DynamicJsonObject();
                    story["Name"] = "story " + i;
                    story["PlanEstimate"] = new Random().Next(2,10);
                    story["PortfolioItem"] = featureRef;
                    story["Project"] = projectRef;
                    CreateResult createResult = restApi.Create(workspaceRef, "HierarchicalRequirement", story);
                    story = restApi.GetByReference(createResult.Reference, "FormattedID");
                    Console.WriteLine("creating..." + story["FormattedID"]);
                }
            //read stories
                DynamicJsonObject feature = restApi.GetByReference(featureRef, "UserStories");
                Request storiesRequest = new Request(feature["UserStories"]);
                storiesRequest.Fetch = new List<string>()
                {
                    "FormattedID",
                    "PlanEstimate"
                };
                storiesRequest.Limit = 1000;
                QueryResult storiesResult = restApi.Query(storiesRequest);
                int storyCount = 0;
                foreach (var userStory in storiesResult.Results)
                {
                    Console.WriteLine(userStory["FormattedID"] + " " + userStory["PlanEstimate"]);
                    storyCount++;
                }
                Console.WriteLine(storyCount);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
        static void Main(string[] args)
        {
            RallyRestApi restApi;
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");

            String projectRef = "/project/222";
            Request testSetRequest = new Request("TestSet");
            testSetRequest.Project = projectRef;
            testSetRequest.Fetch = new List<string>()
                {
                    "Name",
            "FormattedID",
                    "TestCases"
                };

            testSetRequest.Query = new Query("FormattedID", Query.Operator.Equals, "TS22");
            QueryResult queryTestSetResults = restApi.Query(testSetRequest);
            String tsRef = queryTestSetResults.Results.First()._ref;
            String tsName = queryTestSetResults.Results.First().Name;
            Console.WriteLine(tsName + " "  + tsRef);
            DynamicJsonObject testSet = restApi.GetByReference(tsRef, "FormattedID", "TestCases");
            String testCasesCollectionRef = testSet["TestCases"]._ref;
            Console.WriteLine(testCasesCollectionRef);

            ArrayList testCasesList = new ArrayList();

            foreach (var ts in queryTestSetResults.Results)
            {
                Request tcRequest = new Request(ts["TestCases"]);
                QueryResult queryTestCasesResult = restApi.Query(tcRequest);
                foreach (var tc in queryTestCasesResult.Results)
                {
                    var tName = tc["Name"];
                    var tFormattedID = tc["FormattedID"];
                    Console.WriteLine("Test Case: " + tName + " " + tFormattedID);
                    DynamicJsonObject aTC = new DynamicJsonObject();
                    aTC["_ref"] = tc["_ref"];
                    testCasesList.Add(aTC);  //add each test case in the collection to array 'testCasesList'
                }
            }

             Console.WriteLine("count of elements in the array before adding a new tc:" + testCasesList.Count);

              DynamicJsonObject anotherTC = new DynamicJsonObject();
              anotherTC["_ref"] = "/testcase/123456789";             //any existing test to add to the collection

               testCasesList.Add(anotherTC);

               Console.WriteLine("count of elements in the array:" + testCasesList.Count);
               testSet["TestCases"] = testCasesList;
               OperationResult updateResult = restApi.Update(tsRef, testSet);
        }
コード例 #12
0
        static void Main(string[] args)
        {
            RallyRestApi restApi;

            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");
            String workspaceRef = "/workspace/12352608129"; //use your workspace object id

            Request defectRequest = new Request("defect");
            defectRequest.Workspace = workspaceRef;
            defectRequest.Query = new Query("LastUpdateDate", Query.Operator.GreaterThanOrEqualTo, "2014-07-20");
            defectRequest.Fetch = new List<string>()
                {
                    "Name",
                    "FormattedID"
                };

            int stopAfter = 2;  //KEEP IT LOW UNTIL YOU MAKE SURE IT IS DELETING THE INTENDED SUBSET OF YOUR DATA
            int count = 0;
            QueryResult queryDefectResults = restApi.Query(defectRequest);
            foreach (var d in queryDefectResults.Results)
            {
                if (count == stopAfter)
                {
                    break;
                }
                Console.WriteLine("Deleting: " + d["FormattedID"] + " " + d["Name"]);
                OperationResult deleteResult = restApi.Delete(workspaceRef, d["_ref"]); //DELTED DEFECTS WILL BE FOUND IN THE RECYCLE BIN
                count++;
            }
        }
        static void Main(string[] args)
        {
            RallyRestApi restApi;
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");

            String workspaceRef = "/workspace/12345"; //replace this OID with ObjectID of your workspace
            Request revRequest = new Request("Revision");
            revRequest.Workspace = workspaceRef;
            revRequest.Fetch = new List<string>() { "Description", "User", "CreationDate" };

            DateTime now = DateTime.Now;
            Console.WriteLine("now: " + now);

            //look 4 hours back
            //DateTime fourHoursBack = now.AddHours(-4);
            //String fourHoursBackString = fourHoursBack.ToString("yyyy-MM-dd" + "T" + "HH:mm");
            //Console.WriteLine(fourHoursBack);
            //Console.WriteLine(fourHoursBackString);
            //revRequest.Query = new Query("CreationDate", Query.Operator.GreaterThanOrEqualTo, fourHoursBackString);

            //look 10 min back
            DateTime someMinutesBack = now.AddMinutes(-10);
            String someMinutesBackString = someMinutesBack.ToString("yyyy-MM-dd" + "T" + "HH:mm");
            Console.WriteLine("someMinutesBack: " + someMinutesBack);
            Console.WriteLine("someMinutesBackString: " + someMinutesBackString);
            revRequest.Query = new Query("CreationDate", Query.Operator.GreaterThanOrEqualTo, someMinutesBackString);

            QueryResult queryRevResults = restApi.Query(revRequest);

            foreach (var rev in queryRevResults.Results)
            {
                Console.WriteLine("----------");
                Console.WriteLine("Description: " + rev["Description"] + " Author: " + rev["User"]._refObjectName + " CreationDate: " + rev["CreationDate"]);
            }
        }
        static void Main(string[] args)
        {
            RallyRestApi restApi;
            restApi = new RallyRestApi("_abc123", "https://rally1.rallydev.com");

            String projectRef = "/project/12352608219";
            bool projectScopingUp = false;
            bool projectScopingDown = false;

            Request storyRequest = new Request("hierarchicalrequirement");
            storyRequest.Project = projectRef;
            storyRequest.ProjectScopeUp = projectScopingUp;
            storyRequest.ProjectScopeDown = projectScopingDown;
            storyRequest.Limit = 10000;
            storyRequest.Query = new Query("LastUpdateDate", Query.Operator.GreaterThanOrEqualTo, "2013-01-01");

            storyRequest.Fetch = new List<string>()
                {
                    "Name",
                    "FormattedID"
                };

            QueryResult queryResults = restApi.Query(storyRequest);
            int count = 0;
            foreach (var d in queryResults.Results)
            {
                count++;
                Console.WriteLine(count + ". FormattedID: " + d["FormattedID"] + " Name: " + d["Name"]);
            }
            Console.WriteLine("Found " + queryResults.TotalResultCount);
        }
 public List<dynamic> GetArtifactNotificationForDateRange(RallyRestApi rallyApi, string LastItemDateStamp, string currentRunTime, string projectRef)
 {
     List<dynamic> returnValue;
     Request request = new Request("artifactnotification");
     request.Project = projectRef;
     //request.PageSize = 200;
     request.Limit = 5000;
     request.Fetch = new List<string>() { "IDPrefix", "ID"};
     request.Query = new Query("CreationDate", Query.Operator.GreaterThan, LastItemDateStamp).And(new Query("CreationDate", Query.Operator.LessThanOrEqualTo, currentRunTime));
     try
     {
         QueryResult qr = rallyApi.Query(request);
         var results = qr.Results;
         foreach (var r in results)
         {
             Console.WriteLine(r["IDPrefix"] + r["ID"]);
         }
         returnValue = results.ToList();
         return returnValue;
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #16
0
        static void Main(string[] args)
        {
            RallyRestApi restApi = new RallyRestApi(webServiceVersion: "v2.0");
            String apiKey = "_abc123";
            restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false);
            String workspaceRef = "/workspace/12352608129";
            //String projectRef = "/project/39468725060";
            Request request = new Request("Attachment");
            request.Workspace = workspaceRef;
            //request.Project = projectRef;
            request.Fetch = new List<string>() { "Artifact", "TestCaseResult", "Size", "CreationDate" };
            request.Limit = 400;
            request.Order = "CreationDate Desc";
            QueryResult results = restApi.Query(request);

            foreach (var a in results.Results)
            {
                if (a["Artifact"] != null)
                {
                    Console.WriteLine("Artifact: " + a["Artifact"]["_ref"]);
                }
                else if (a["TestCaseResult"] != null)
                {
                    Console.WriteLine("TestCaseResult: " + a["TestCaseResult"]["_ref"]);
                }
                Console.WriteLine("Size: " + a["Size"]);
            }
        }
        static void Main(string[] args)
        {
            RallyRestApi restApi;
            //restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");
            restApi = new RallyRestApi("_abc123", "https://rally1.rallydev.com"); //either username/passowrd or API Key authetnication is valid
            String workspaceRef = "/workspace/12352608129";     //replace this OID with an OID of your workspace

            DateTime today = DateTime.Today;
            DateTime checkback = today.AddDays(-5);
            String checkbackString = checkback.ToString("yyyy-MM-dd");

            Request sRequest = new Request("HierarchicalRequirement");
            sRequest.Workspace = workspaceRef;
            sRequest.Fetch = new List<string>() { "Name", "FormattedID", "Changesets", "LastUpdateDate" };
            sRequest.Query = new Query("LastUpdateDate", Query.Operator.GreaterThanOrEqualTo, checkbackString);
            QueryResult queryResults = restApi.Query(sRequest);

            foreach (var s in queryResults.Results)
            {
                Console.WriteLine("**********************************************************");
                Console.WriteLine("FormattedID: " + s["FormattedID"] + " Name: " + s["Name"]);
                Console.WriteLine("**********************************************************");
                Request changesetRequest = new Request("Changesets");
                QueryResult changesetResult = restApi.Query(changesetRequest);
                String author = "None";
                if (changesetResult.TotalResultCount > 0)
                {
                    foreach (var c in changesetResult.Results)
                    {
                        if (c["Author"] != null)
                        {
                            author = c["Author"]._refObjectName;
                        }
                        Console.WriteLine("changeset: Author:" + author + " SCMRepository: " + c["SCMRepository"]._refObjectName + " Message: " + c["Message"]);
                        Request changesRequest = new Request(c["Changes"]);
                        QueryResult changesResult = restApi.Query(changesRequest);
                        foreach (var ch in changesResult.Results)
                        {
                            Console.WriteLine("Change: " + ch["Action"] + " PathAndFilename: " + ch["PathAndFilename"]);
                        }
                    }
                }

            }
        }
コード例 #18
0
        public ICollection<Story> GetAllStories()
        {
            var api = new RallyRestApi("*****@*****.**", "old*9salt");

            var result = api.Query(new Request("HierarchicalRequirement") {
                Fetch = new[] {"Name", "PlanEstimate"}.ToList(),
                PageSize = 20,
                Limit = 20
            });

            return result.Results.Take(20).Select(Translate).ToList();
        }
コード例 #19
0
 static void Main(string[] args)
 {
     String apiKey = "_abc123";
     RallyRestApi restApi = new RallyRestApi(apiKey, "https://rally1.rallydev.com");
     String projectRef = "/project/12352608219";
     Request request = new Request("RecycleBinEntry");
     request.Project = projectRef;
     request.Fetch = new List<string>() { "Name"};
     request.Query = new Query("ID", Query.Operator.Equals, "DE6");
     QueryResult result = restApi.Query(request);
     Console.WriteLine("Name: " + result.Results.First()["Name"]);
 }
        static void Main(string[] args)
        {
            RallyRestApi restApi;
            //this app is using old 2.0.1 of .NET Toolkit
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");

            String workspaceRef = "/workspace/12345";     //replace this OID with an OID of your workspace

            Request request = new Request("Artifact");
            request.Workspace = workspaceRef;
            request.Fetch = new List<string>() { "FormattedID", "Name"};
            request.Query = new Query("FormattedID", Query.Operator.Equals, "DE4");
            QueryResult result = restApi.Query(request);
            //since artifact query disregards prefix in FormattedID, it will return DE4, TA4, US4 if they all exist, hence
            //there is no guarantee that the first result will be a defect id we use result.Results.First()._ref as below:
            //String defectRef = result.Results.First()._ref;
            String defectRef = "";
            foreach (var artifact in result.Results)
            {
                Console.WriteLine(artifact["_type"] + ": " + artifact["_ref"]);
                if (artifact["_type"] == "Defect")
                {
                    defectRef = artifact["_ref"];
                }
            }

            Request conversationPostRequest = new Request("ConversationPost");
            conversationPostRequest.Workspace = workspaceRef;
            conversationPostRequest.Query = new Query("Artifact", Query.Operator.Equals, defectRef);
            conversationPostRequest.Fetch = new List<string>() { "Text", "User" };
            QueryResult conversationPostResult = restApi.Query(conversationPostRequest);
            Console.WriteLine("Discussions:-------------------");
            foreach (var post in conversationPostResult.Results)
            {
                Console.WriteLine(post["User"]["_refObjectName"] + ": " + post["Text"]);
            }
        }
        static void Main(string[] args)
        {
            RallyRestApi restApi = new RallyRestApi(webServiceVersion: "v2.0");
            String apiKey = "_abc123";
            restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false);
            String workspaceRef = "/workspace/1011574887"; //non-default workspace of the user
            String projectRef = "/project/1791269111"; //a non-default project of the user (inside the workspace above)
            try
            {
                //create testset
                DynamicJsonObject myTestSet = new DynamicJsonObject();
                myTestSet["Name"] = "important set " + DateTime.Now;
                myTestSet["Project"] = projectRef;

                CreateResult createTestSet = restApi.Create(workspaceRef, "TestSet", myTestSet);
                myTestSet = restApi.GetByReference(createTestSet.Reference, "FormattedID", "Project");
                Console.WriteLine(myTestSet["FormattedID"] + " " + myTestSet["Project"]._refObjectName);

                //find current iteration

                Request iterationRequest = new Request("Iteration");
                iterationRequest.Project = projectRef;
                iterationRequest.ProjectScopeDown = false;
                iterationRequest.ProjectScopeUp = false;
                iterationRequest.Fetch = new List<string>() { "ObjectID", "Name" };
                iterationRequest.Query = new Query("(StartDate <= Today)").And(new Query("(EndDate >= Today)"));
                QueryResult queryResults = restApi.Query(iterationRequest);
                if (queryResults.TotalResultCount > 0)
                {
                    Console.WriteLine(queryResults.Results.First()["Name"] + " " + queryResults.Results.First()["ObjectID"]);
                    myTestSet["Iteration"] = queryResults.Results.First()._ref;
                    OperationResult updateResult = restApi.Update(myTestSet["_ref"], myTestSet);
                }
                else
                {
                    Console.WriteLine("No current iterations");
                }

            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
コード例 #22
0
        static void Main(string[] args)
        {
            //Initialize the REST API
            RallyRestApi restApi;
               restApi = new RallyRestApi("*****@*****.**", "topsecret", "https://rally1.rallydev.com", "v2.0");

            //Set our Workspace and Project scopings
            String workspaceRef = "/workspace/1111"; //use valid OID of your workspace
            String projectRef = "/project/2222";     //use valid OID of your project
            bool projectScopingUp = false;
            bool projectScopingDown = true;
            Request userRequest = new Request("User");

            userRequest.Workspace = workspaceRef;
            userRequest.Project = projectRef;
            userRequest.ProjectScopeUp = projectScopingUp;
            userRequest.ProjectScopeDown = projectScopingDown;

            /*
                userRequest.Fetch = new List<string>()
                {
                   "Role",
            "CostCenter",
                   "LastLoginDate",
                   "OfficeLocation",
                   "CreationDate"
                };*/

            userRequest.Query = new Query("UserName", Query.Operator.Equals, "*****@*****.**");

            QueryResult userResults = restApi.Query(userRequest);
            String userRef = userResults.Results.First()._ref;
            DynamicJsonObject user = restApi.GetByReference(userRef, "Name", "Role", "CostCenter", "LastLoginDate", "OfficeLocation", "CreationDate");
            String role = user["Role"];
            String costCenter = user["CostCenter"];
            String lastLoginDate = user["LastLoginDate"];
            String officeLocation = user["OfficeLocation"];
            String creationDate = user["CreationDate"];

            Console.WriteLine("Role: " + role + " CostCenter: " + costCenter + " LastLoginDate: " + lastLoginDate + " OfficeLocation: " + officeLocation + " CreationDate: " + creationDate);
        }
        static void Main(string[] args)
        {
            RallyRestApi restApi;
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");

            String workspaceRef = "/workspace/12352608129"; //replace this OID with an ObjectID of your workspace
            Request revRequest = new Request("Revision");
            revRequest.Workspace = workspaceRef;
            revRequest.Fetch = new List<string>() { "Description", "User", "CreationDate" };

            DateTime today = DateTime.Today;
            String todayString = today.ToString("yyyy-MM-dd");
            revRequest.Query = new Query("CreationDate", Query.Operator.GreaterThanOrEqualTo, todayString);

            QueryResult queryRevResults = restApi.Query(revRequest);

            foreach (var rev in queryRevResults.Results)
            {
                Console.WriteLine("----------");
                Console.WriteLine("Description: " + rev["Description"] + " Author: " + rev["User"]._refObjectName + " CreationDate: " + rev["CreationDate"]);
            }
        }
        static void Main(string[] args)
        {
            //Initialize the REST API
            RallyRestApi restApi;
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");

            //Set Workspace
            String workspaceRef = "/workspace/12352608129"; //please replace this OID with an OID of your workspace

            Request revRequest = new Request("Revision");
            revRequest.Workspace = workspaceRef;

            revRequest.Fetch = new List<string>() { "Description"};

            DateTime now = DateTime.Today;
            DateTime oneMonthBack = now.AddMonths(-1);
            String thenString = oneMonthBack.ToString("yyyy-MM-dd");

            revRequest.Query = new Query("CreationDate", Query.Operator.GreaterThanOrEqualTo, thenString);

            QueryResult queryRevResults = restApi.Query(revRequest);
            Console.WriteLine(queryRevResults.TotalResultCount);
        }
        static void Main(string[] args)
        {
            //Initialize the REST API
            RallyRestApi restApi;
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "1.43"); //NOTE: 1.43 will be unsupported after June 2014
            Request subRequest = new Request("Subscription");
            subRequest.Fetch = new List<string>()
                {
                    "Name",
                    "ObjectID",
                    "Workspaces",
                    "Projects"
                };

            String subQueryString = "(Name = \"Rally Support\")";
            subRequest.Query = new Query(subQueryString);

            QueryResult subQueryResults = restApi.Query(subRequest);
            foreach (var s in subQueryResults.Results)
            {
                Console.WriteLine("Name: " + s["Name"]);
                Console.WriteLine("ObjectID: " + s["ObjectID"]);
                var workspaces = s["Workspaces"];
                int projectCounter = 0;
                foreach (var w in workspaces)
                {
                    Console.WriteLine("Workspace: " + w["ObjectID"] + " " + w["Name"]);
                    var projects = w["Projects"];
                    foreach (var p in projects)
                    {
                        Console.WriteLine("Project: " + p["ObjectID"] + " " + p["Name"]);
                        projectCounter++;
                    }
                    Console.WriteLine("projects total in the sub: " + projectCounter);
               }
            }
        }
        static void Main(string[] args)
        {
            DateTime today = DateTime.Today;
            DateTime forward = today.AddDays(90);
            String forwardString = forward.ToString("yyyy-MM-dd");
            DateTime back = today.AddDays(-90);
            String backString = back.ToString("yyyy-MM-dd");

            RallyRestApi restApi;
            restApi = new RallyRestApi("_abc123", "https://rally1.rallydev.com"); //either username/passowrd or API Key authetnication is valid
            String workspaceRef = "/workspace/12352608129";     //replace this OID with an OID of your workspace

            Request request = new Request("PortfolioItem/Feature");
            request.Workspace = workspaceRef;
            request.Fetch = new List<string>() {"Name","FormattedID","PlannedStartDate","PlannedEndDate"};
            request.Query = new Query("PlannedStartDate", Query.Operator.GreaterThan, backString).And(new Query("PlannedEndDate", Query.Operator.LessThanOrEqualTo, forwardString));
            QueryResult results = restApi.Query(request);

            foreach (var f in results.Results)
            {
                Console.WriteLine("FormattedID: " + f["FormattedID"] + " Name: " + f["Name"] + " PlannedStartDate: " + f["PlannedStartDate"] + " PlannedEndDate: " + f["PlannedEndDate"]);
                Console.WriteLine("**********************************************************");
            }
        }
        static void Main(string[] args)
        {
            RallyRestApi restApi;
            restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");

            String projectRef = "/project/123456";     //use valid OID of your project

            Request userRequest = new Request("User");

            userRequest.Query = new Query("UserName", Query.Operator.Equals, "*****@*****.**");

            QueryResult userResults = restApi.Query(userRequest);

            String userRef = userResults.Results.First()._ref;
            Console.WriteLine(userRef);

            DynamicJsonObject myStory = new DynamicJsonObject();
            myStory["Name"] = "a new story";
            myStory["Project"] = projectRef;
            myStory["Owner"] = userRef;
            CreateResult createResult = restApi.Create("HierarchicalRequirement", myStory);
            myStory = restApi.GetByReference(createResult.Reference, "FormattedID", "Owner", "Project");
            Console.WriteLine(myStory["FormattedID"] + " " + myStory["Owner"]._refObjectName + " " + myStory["Project"]._refObjectName);
        }
コード例 #28
0
ファイル: Turtle.cs プロジェクト: reinsch82/TurtleRallyDev
        public string GetCommitMessage2( IntPtr hParentWnd, string parameters, string commonURL, string commonRoot, string[] pathList,
                               string originalMessage, string bugID, out string bugIDOut, out string[] revPropNames, out string[] revPropValues )
        {
            try
            {
                var restApi = new RallyRestApi("*****@*****.**", "Reinsch1987", "https://rally1.rallydev.com", "v2.0");

                // Build request
                var request = BuildRequest("defect");

                // Make request and process results
                var queryResult = restApi.Query(request);
                if (!queryResult.Success) {
                  foreach (var er in queryResult.Errors) {
                    MessageBox.Show("Error: " + er);
                  }
                }

                var tickets = createTicketsAndIssueIds(queryResult);

                request = BuildRequest("HierarchicalRequirement");
                // Make request and process results
                queryResult = restApi.Query(request);
                if (!queryResult.Success) {
                  foreach (var er in queryResult.Errors) {
                    MessageBox.Show("Error: " + er);
                  }
                }

                tickets.AddRange(createTicketsAndIssueIds(queryResult));

                revPropNames = new string[1];
                revPropValues = new string[1];
                revPropNames[0] = "Rally:issueIDs";
                revPropValues[0] = issueIds;

                bugIDOut = bugID + "added";

                MyIssuesForm form = new MyIssuesForm( tickets );
                if ( form.ShowDialog( ) != DialogResult.OK )
                    return originalMessage;

                StringBuilder result = new StringBuilder( originalMessage );
                if ( originalMessage.Length != 0 && !originalMessage.EndsWith( "\n" ) )
                    result.AppendLine( );

                foreach ( TicketItem ticket in form.TicketsFixed )
                {
                    result.AppendFormat( "Fixed {0}: {1}", ticket.TicketId, ticket.Summary );
                    result.AppendLine( );
                    selectedTickets.Add( ticket );
                }

                return result.ToString( );
            }
            catch ( Exception ex )
            {
                MessageBox.Show( ex.ToString( ) );
                throw;
            }
        }
コード例 #29
0
        Artifact[] ResolveArtifacts()
        {
            var restApi = new RallyRestApi(Settings.Default.RallyUser, Settings.Default.RallyPassword
                //, proxy: new WebProxy("localhost:8888", false)
            );

            var request = new Request("artifact");
            request.Fetch = new List<string> { "FormattedID", "Discussion", "Name", "Requirement", "WorkProduct" };

            // build query for many items
            var queries = _defectIds
                .Select(id => new Query("FormattedID", Query.Operator.Equals, id))
                .ToArray()
            ;

            var query = queries[0];
            for (var i = 1; i < queries.Length; i++)
            {
                query = query.Or(queries[i]);
            }

            request.Query = query;

            // perfrom query
            var resp = restApi.Query(request);

            if(!resp.Success)
            {
                if (resp.Errors.Count > 0)
                    throw new ApplicationException(resp.Errors[0]);

                throw new ApplicationException("Unexpected error");
            }

            return resp.Results.Select(a => new Artifact(a)).ToArray();
        }
コード例 #30
0
        static void Main(string[] args)
        {
            RallyRestApi restApi = new RallyRestApi(webServiceVersion: "v2.0");
            String apiKey = "_abc123";
            restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false);
            String workspaceRef = "/workspace/1011574887";
            String projectRef = "/project/1791269111";
            String userName = "******";

            try
            {

                Request storyRequest = new Request("hierarchicalrequirement");
                storyRequest.Workspace = workspaceRef;
                storyRequest.Project = projectRef;

                storyRequest.Fetch = new List<string>()
                {
                    "FormattedID"
                };

                storyRequest.Query = new Query("FormattedID", Query.Operator.Equals, "US2917");
                QueryResult queryResult = restApi.Query(storyRequest);
                var storyObject = queryResult.Results.First();
                String storyReference = storyObject["_ref"];

                Request userRequest = new Request("user");
                userRequest.Fetch = new List<string>()
                {
                    "UserName"
                };

                userRequest.Query = new Query("UserName", Query.Operator.Equals, userName);
                QueryResult queryUserResults = restApi.Query(userRequest);
                DynamicJsonObject user = new DynamicJsonObject();
                user = queryUserResults.Results.First();
                String userRef = user["_ref"];

                String imageFilePath = "C:\\images\\";
                String imageFileName = "rally.png";
                String fullImageFile = imageFilePath + imageFileName;
                Image myImage = Image.FromFile(fullImageFile);

                string imageBase64String = ImageToBase64(myImage, System.Drawing.Imaging.ImageFormat.Png);
                var imageNumberBytes = Convert.FromBase64String(imageBase64String).Length;
                Console.WriteLine("Image size: " + imageNumberBytes);

                DynamicJsonObject myAttachmentContent = new DynamicJsonObject();
                myAttachmentContent["Content"] = imageBase64String;
                CreateResult myAttachmentContentCreateResult = restApi.Create(workspaceRef,"AttachmentContent", myAttachmentContent);
                String myAttachmentContentRef = myAttachmentContentCreateResult.Reference;
                Console.WriteLine(myAttachmentContentRef);

                DynamicJsonObject myAttachment = new DynamicJsonObject();
                myAttachment["Artifact"] = storyReference;
                myAttachment["Content"] = myAttachmentContentRef;
                myAttachment["Name"] = "rally.png";
                myAttachment["Description"] = "Attachment Desc";
                myAttachment["ContentType"] = "image/png";
                myAttachment["Size"] = imageNumberBytes;
                myAttachment["User"] = userRef;

                CreateResult myAttachmentCreateResult = restApi.Create(workspaceRef, "Attachment", myAttachment);

                List<string> createErrors = myAttachmentContentCreateResult.Errors;
                for (int i = 0; i < createErrors.Count; i++)
                {
                    Console.WriteLine(createErrors[i]);
                }

                String myAttachmentRef = myAttachmentCreateResult.Reference;
                Console.WriteLine(myAttachmentRef);

            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }