Exemple #1
0
        public void RemoveFromCollection2x()
        {
            RallyRestApi      restApi  = GetRallyRestApi2x();
            DynamicJsonObject newStory = new DynamicJsonObject();

            newStory["Name"] = "Test Story";
            var itemRef = restApi.Create("hierarchicalrequirement", newStory).Reference;
            DynamicJsonObject newDefect = new DynamicJsonObject();

            newDefect["Name"]        = "New Defect Added via collection";
            newDefect["Requirement"] = itemRef;
            CreateResult newTaskResult = restApi.Create("defect", newDefect);

            DynamicJsonObject story = restApi.GetByReference(itemRef, "Defects");

            Assert.AreEqual(1, story["Defects"]["Count"]);

            DynamicJsonObject taskToRemove = new DynamicJsonObject();

            taskToRemove["_ref"] = newTaskResult.Reference;
            OperationResult result = restApi.RemoveFromCollection(itemRef, "Defects", new List <DynamicJsonObject>()
            {
                taskToRemove
            }, new NameValueCollection());

            Assert.IsTrue(result.Success);
            Assert.AreEqual(0, result.Results.Count);
            story = restApi.GetByReference(itemRef, "Defects");
            Assert.AreEqual(0, story["Defects"]["Count"]);

            // Now delete the defect and story
            TestHelperDeleteItem(restApi, newTaskResult.Reference);
            TestHelperDeleteItem(restApi, itemRef);
        }
Exemple #2
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 = new RallyRestApi(webServiceVersion: "v2.0");
            String       apiKey  = "_abc777";

            restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false);
            String workspaceRef = "/workspace/123";
            String projectRef   = "/project/134";

            DynamicJsonObject badDefect = new DynamicJsonObject();

            badDefect["Name"]    = "bad defect 2" + DateTime.Now;
            badDefect["Project"] = projectRef;

            CreateResult createRequest = restApi.Create(workspaceRef, "Defect", badDefect);

            badDefect = restApi.GetByReference(createRequest.Reference, "FormattedID", "Project", "State");
            Console.WriteLine(badDefect["FormattedID"] + " " + badDefect["Project"]._refObjectName + " " + badDefect["State"]);

            badDefect["State"] = "Open";
            OperationResult updateRequest = restApi.Update(badDefect["_ref"], badDefect);

            Console.WriteLine("Success? " + updateRequest.Success);
            Console.WriteLine("updated State: " + badDefect["State"]);
        }
Exemple #4
0
        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);
        }
        public void GetByReferenceUserTest()
        {
            RallyRestApi restApi  = GetRallyRestApi();
            dynamic      response = restApi.GetByReference("/user.js");

            Assert.IsNotNull(response.ObjectID);
        }
        public void GetByReferenceSubscriptionTest()
        {
            RallyRestApi restApi  = GetRallyRestApi();
            dynamic      response = restApi.GetByReference("/subscription.js");

            Assert.IsNotNull(response.ObjectID);
        }
Exemple #7
0
        private void TestHelperDeleteItem(RallyRestApi restApi, string reference)
        {
            OperationResult deleteResponse = restApi.Delete(Ref.GetRelativeRef(reference));
            dynamic         testEmpty      = restApi.GetByReference(reference);

            Assert.IsNull(testEmpty);
        }
        public void GetByReferenceTest()
        {
            RallyRestApi restApi  = GetRallyRestApi();
            dynamic      response = restApi.GetByReference("/Defect/" + defectOid + ".js");

            Assert.AreEqual(defectOid, response.ObjectID.ToString());
        }
        public List <string> GetListOfTestCasesFromFolder(string testcasesRef)
        {
            List <string> listTestCases   = null;
            var           testcasesObj    = api.GetByReference(testcasesRef);
            var           testcasesResult = (ArrayList)testcasesObj["Results"];

            if (testcasesResult.Count > 0)
            {
                listTestCases = new List <string>();

                foreach (dynamic value in testcasesResult)
                {
                    listTestCases.Add(value["ObjectID"].ToString());
                }
            }

            return(listTestCases);
        }
        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);
        }
    static void Main(string[] args)
    {
        RallyRestApi      restApi      = new RallyRestApi("*****@*****.**", "secret", "https://sandbox.rallydev.com", "v2.0");
        DynamicJsonObject user         = restApi.GetCurrentUser();
        String            userRef      = user["_ref"];
        String            workspaceRef = "/workspace/12352608129"; //use valid workspace OID in your Rally
        String            projectRef   = "/project/14018981229";   //use valid project OID in your Rally

        System.Diagnostics.TextWriterTraceListener myListener = new System.Diagnostics.TextWriterTraceListener("log.log", "myListener");

        try
        {
            //create story
            DynamicJsonObject myStory = new DynamicJsonObject();
            myStory["Name"]    = "my story " + DateTime.Now;
            myStory["Project"] = projectRef;
            myStory["Owner"]   = userRef;
            CreateResult createStory = restApi.Create(workspaceRef, "HierarchicalRequirement", myStory);
            myStory = restApi.GetByReference(createStory.Reference, "FormattedID", "Owner", "Project");
            myListener.WriteLine(DateTime.Now + "___________\r\n" + myStory["FormattedID"] + " Owner: " + myStory["Owner"]._refObjectName + " Project: " + myStory["Project"]._refObjectName);

            //update story
            myStory["Description"] = "updated " + DateTime.Now;

            //create tasks
            for (int i = 1; i <= 3; i++)
            {
                DynamicJsonObject myTask = new DynamicJsonObject();
                myTask["Name"]        = "task " + i + DateTime.Now;
                myTask["Owner"]       = userRef;
                myTask["State"]       = "In-Progress";
                myTask["WorkProduct"] = myStory["_ref"];
                CreateResult createTask = restApi.Create(workspaceRef, "Task", myTask);
                myTask = restApi.GetByReference(createTask.Reference, "FormattedID", "Owner", "State");
                myListener.WriteLine(myTask["FormattedID"] + " State: " + myTask["StateX"]);
            }
        }
        catch (Exception e)
        {
            myListener.WriteLine(e);
        }

        myListener.Flush();
    }
        public void GetByReferencePortfolioItemTest()
        {
            RallyRestApi      restApi      = GetRallyRestApi();
            Request           fRequest     = new Request("PortfolioItem/Feature");
            QueryResult       queryResults = restApi.Query(fRequest);
            String            featureRef   = queryResults.Results.First()._ref;
            DynamicJsonObject feature      = restApi.GetByReference(featureRef, "Name");

            Assert.IsNotNull(feature);
        }
        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 projectRef = "/project/32904827032";

            try
            {
                //create story
                DynamicJsonObject myStory = new DynamicJsonObject();
                myStory["Name"]    = "another story " + DateTime.Now;
                myStory["Project"] = projectRef;

                CreateResult createStory = restApi.Create(workspaceRef, "HierarchicalRequirement", myStory);
                myStory = restApi.GetByReference(createStory.Reference, "FormattedID", "Project");


                //update story
                myStory["Description"]    = "updated " + DateTime.Now;
                myStory["c_CustomString"] = "abc123";
                Console.WriteLine("--------------------");
                Console.WriteLine(myStory["FormattedID"]);
                OperationResult updateResult = restApi.Update(myStory["_ref"], myStory);

                //create tasks
                for (int i = 1; i <= 3; i++)
                {
                    DynamicJsonObject myTask = new DynamicJsonObject();
                    myTask["Name"]        = "task " + i + DateTime.Now;
                    myTask["State"]       = "In-Progress";
                    myTask["WorkProduct"] = myStory["_ref"];
                    CreateResult createTask = restApi.Create(workspaceRef, "Task", myTask);
                    myTask = restApi.GetByReference(createTask.Reference, "FormattedID", "Owner", "State");
                    Console.WriteLine(myTask["FormattedID"]);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemple #14
0
        private void AssertCanDelete(RallyRestApi restApi, bool includeFullData = false)
        {
            // Create test defect
            var defect    = TestHelperCreateDefect(restApi, includeFullData);
            var defectOid = Ref.GetOidFromRef(defect);

            OperationResult deleteResponse  = restApi.Delete(Ref.GetRelativeRef(defect));
            dynamic         testDefectEmpty = restApi.GetByReference(defect);

            Assert.IsNull(testDefectEmpty);
        }
        private void AssertCanUpdate(RallyRestApi restApi)
        {
            var dynamicJson = new DynamicJsonObject();

            dynamicJson["Name"] = "Dont delete me please " + DateTime.Now.Second;
            OperationResult response = restApi.Update("Defect", defectOid, dynamicJson);

            Assert.AreEqual(0, response.Errors.Count);
            dynamic updateDefect = restApi.GetByReference("/Defect/" + defectOid + ".js");

            Assert.AreEqual(dynamicJson["Name"], updateDefect.Name);
        }
        private void AssertCanCreate(RallyRestApi restApi)
        {
            var dynamicJson = new DynamicJsonObject();

            dynamicJson["Name"] = "C# Json Rest Toolkit Test Defect";
            CreateResult response = restApi.Create("defect", dynamicJson);

            Assert.AreEqual(0, response.Errors.Count);
            Assert.IsTrue(response.Reference.ToLower().Contains("defect"));
            dynamic testDefect = restApi.GetByReference(response.Reference);

            Assert.AreEqual(dynamicJson["Name"], testDefect.Name);
            defectOid = Ref.GetOidFromRef(response.Reference);
        }
        private void AssertCanDelete(RallyRestApi restApi)
        {
            var dynamicJson = new DynamicJsonObject();

            dynamicJson["Name"] = "C# Json Rest Toolkit Test Defect";
            CreateResult response = restApi.Create("defect", dynamicJson);

            Assert.AreEqual(0, response.Errors.Count);
            Assert.IsTrue(response.Reference.ToLower().Contains("defect"));
            OperationResult deleteResponse  = restApi.Delete(Ref.GetRelativeRef(response.Reference));
            dynamic         testDefectEmpty = restApi.GetByReference(response.Reference);

            Assert.IsNull(testDefectEmpty);
        }
Exemple #18
0
        public void GetByReferenceTest()
        {
            RallyRestApi restApi = GetRallyRestApi();

            // Create test defect
            var defect    = TestHelperCreateDefect(restApi);
            var defectOid = Ref.GetOidFromRef(defect);

            dynamic response = restApi.GetByReference("/Defect/" + defectOid + ".js");

            Assert.AreEqual(defectOid, response.ObjectID.ToString());

            // Now delete it
            TestHelperDeleteItem(restApi, defect);
        }
        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);
            }
        }
    static void Main(string[] args)
    {
        RallyRestApi      restApi      = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");
        DynamicJsonObject user         = restApi.GetCurrentUser();
        String            userRef      = user["_ref"];
        String            workspaceRef = "/workspace/11111"; //use valid workspace OID in your Rally
        String            projectRef   = "/project/12345";   //use valid project OID in your Rally

        DynamicJsonObject myStory = new DynamicJsonObject();

        myStory["Name"]    = "my story";
        myStory["Project"] = projectRef;
        myStory["Owner"]   = userRef;
        CreateResult createResult = restApi.Create(workspaceRef, "HierarchicalRequirement", myStory);

        myStory = restApi.GetByReference(createResult.Reference, "FormattedID", "Owner", "Project");
        Console.WriteLine(myStory["FormattedID"] + " " + myStory["Owner"]._refObjectName + " " + myStory["Project"]._refObjectName);
    }
Exemple #21
0
        private void AssertCanUpdate(RallyRestApi restApi)
        {
            // Create test defect
            var defect    = TestHelperCreateDefect(restApi);
            var defectOid = Ref.GetOidFromRef(defect);

            var dynamicJson = new DynamicJsonObject();

            dynamicJson["Name"] = "Dont delete me please " + DateTime.Now.Second;
            OperationResult response = restApi.Update("Defect", defectOid, dynamicJson);

            Assert.AreEqual(0, response.Errors.Count);
            dynamic updateDefect = restApi.GetByReference("/Defect/" + defectOid + ".js");

            Assert.AreEqual(dynamicJson["Name"], updateDefect.Name);

            // Now delete it
            TestHelperDeleteItem(restApi, defect);
        }
Exemple #22
0
        public void ExampleMethodText()
        {
            string username = "******";
            string password = "******";
            // Initialize the REST API. You can specify a web service version if needed in the constructor.
            RallyRestApi restApi = new RallyRestApi();

            restApi.Authenticate(username, password, "https://preview.rallydev.com", proxy: null, allowSSO: false);

            //Create an item
            DynamicJsonObject toCreate = new DynamicJsonObject();

            toCreate["Name"] = "My Defect";
            CreateResult createResult = restApi.Create("defect", toCreate);

            //Update the item
            DynamicJsonObject toUpdate = new DynamicJsonObject();

            toUpdate["Description"] = "This is my defect.";
            OperationResult updateResult = restApi.Update(createResult.Reference,
                                                          toUpdate);

            //Get the item
            DynamicJsonObject item = restApi.GetByReference(createResult.Reference);

            //Query for items
            Request request = new Request("defect");

            request.Fetch = new List <string>()
            {
                "Name", "Description", "FormattedID"
            };
            request.Query = new Query("Name", Query.Operator.Equals, "My Defect");
            QueryResult queryResult = restApi.Query(request);

            foreach (var result in queryResult.Results)
            {
                //Process item as needed
            }

            //Delete the item
            OperationResult deleteResult = restApi.Delete(createResult.Reference);
        }
        private void AssertCanDelete(RallyRestApi restApi, bool includeFullData = false)
        {
            var dynamicJson = new DynamicJsonObject();

            dynamicJson["Name"] = "C# Json Rest Toolkit Test Defect";
            if (includeFullData)
            {
                dynamicJson["Owner"]   = restApi.GetCurrentUser()["_ref"];
                dynamicJson["Package"] = "Package A";
            }
            CreateResult response = restApi.Create("defect", dynamicJson);

            Assert.AreEqual(0, response.Errors.Count);
            Assert.IsTrue(response.Reference.ToLower().Contains("defect"));
            OperationResult deleteResponse  = restApi.Delete(Ref.GetRelativeRef(response.Reference));
            dynamic         testDefectEmpty = restApi.GetByReference(response.Reference);

            Assert.IsNull(testDefectEmpty);
        }
Exemple #24
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);
        }
Exemple #25
0
        static void Main(string[] args)
        {
            RallyRestApi      restApi      = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0");
            String            workspaceRef = "/workspace/11111"; //use valid workspace OID in your Rally
            String            projectRef   = "/project/12345";   //use valid project OID in your Rally
            String            userRef      = "/user/777";
            DynamicJsonObject d            = new DynamicJsonObject();

            d["Name"]    = "some bug";
            d["Project"] = projectRef;
            d["Owner"]   = userRef;

            CreateResult      createResult = restApi.Create(workspaceRef, "Defect", d);
            DynamicJsonObject defect       = restApi.GetByReference(createResult.Reference, "FormattedID");

            Console.WriteLine(defect["FormattedID"]);

            //update defect
            defect["Description"] = "bad bug";
            OperationResult updateResult = restApi.Update(defect["_ref"], defect);
        }
Exemple #26
0
        public void InitializeSteps()
        {
            var resultSteps    = rallyResult["Steps"];
            var stepsRef       = resultSteps["_ref"];
            var stepsFromRally = api.GetByReference(stepsRef);

            if (stepsFromRally.TotalResultCount > 0)
            {
                Steps = new List <TestCaseStep>();

                foreach (var step in stepsFromRally.Results)
                {
                    Steps.Add(new TestCaseStep()
                    {
                        StepNumber   = step["StepIndex"],
                        ExpectedText = step["ExpectedResult"],
                        InputText    = step["Input"]
                    });
                }
            }
        }
        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);
        }
        static void Main(string[] args)
        {
            String userName     = "******";
            String userPassword = "******";
            String serverUrl    = "https://rally1.rallydev.com";
            String wsapiVersion = "1.38";

            RallyRestApi restApi = new RallyRestApi(
                userName,
                userPassword,
                serverUrl,
                wsapiVersion
                );

            restApi.Headers[RallyRestApi.HeaderType.Vendor] = "Rally Software";
            restApi.Headers[RallyRestApi.HeaderType.Name]   = "RestExample_AddUsersToProject";

            // Query for Project for which we want to add permissions
            Request projectRequest = new Request("project");

            projectRequest.Fetch = new List <string>()
            {
                "Name",
                "Owner",
                "State",
                "Description"
            };
            String projectName = "Avalanche Hazard Mapping";

            projectRequest.Query = new Query("Name", Query.Operator.Equals, projectName);
            QueryResult queryProjectResults = restApi.Query(projectRequest);
            var         myProject           = queryProjectResults.Results.First();
            String      myProjectReference  = myProject["_ref"];

            Console.WriteLine("Project Name: " + myProject["Name"]);
            Console.WriteLine("State: " + myProject["State"]);

            // Query for User for whom we wish to add ProjectPermission
            Request userRequest = new Request("user");

            userRequest.Fetch = new List <string>()
            {
                "UserName",
                "Subscription",
                "DisplayName"
            };


            // User needing the permissions
            userRequest.Query = new Query("UserName", Query.Operator.Equals, "\"[email protected]\"");
            QueryResult queryUserResults = restApi.Query(userRequest);

            var    myUser          = queryUserResults.Results.First();
            String myUserReference = myUser["_ref"];

            Console.WriteLine("Username: "******"UserName"]);
            Console.WriteLine("Display Name: " + myUser["DisplayName"]);
            Console.WriteLine("Subscription: " + myUser["Subscription"]);

            // Setup required ProjectPermission data
            DynamicJsonObject newProjectPermission = new DynamicJsonObject();

            newProjectPermission["User"]    = myUser;
            newProjectPermission["Project"] = myProject;
            newProjectPermission["Role"]    = "Editor";

            // Create the permission in Rally
            CreateResult addProjectPermissionResult = restApi.Create("ProjectPermission", newProjectPermission);

            DynamicJsonObject fetchedProjectPermission = restApi.GetByReference(addProjectPermissionResult.Reference, "Name");

            Console.WriteLine("Created ProjectPermission with Role: " + fetchedProjectPermission["Name"]);
        }
        static void Main(string[] args)
        {
            //Initialize the REST API
            RallyRestApi restApi;
            // Rally parameters
            String userName     = "******";
            String userPassword = "******";
            String rallyURL     = "https://rally1.rallydev.com";
            String wsapiVersion = "1.43";

            restApi = new RallyRestApi(
                userName,
                userPassword,
                rallyURL,
                wsapiVersion
                );
            //Set our Workspace and Project scopings
            String workspaceRef       = "/workspace/12345678910";
            String projectRef         = "/project/12345678911";
            bool   projectScopingUp   = false;
            bool   projectScopingDown = true;
            // Find User Story that we want to pull attachment from
            // Tee up Story Request
            Request storyRequest = new Request("hierarchicalrequirement");

            storyRequest.Workspace        = workspaceRef;
            storyRequest.Project          = projectRef;
            storyRequest.ProjectScopeDown = projectScopingDown;
            storyRequest.ProjectScopeUp   = projectScopingUp;
            // Fields to Fetch
            storyRequest.Fetch = new List <string>()
            {
                "Name",
                "FormattedID",
                "Attachments"
            };
            // Add a query
            storyRequest.Query = new Query("FormattedID", Query.Operator.Equals, "US43");
            // Query Rally for the Story
            QueryResult queryResult = restApi.Query(storyRequest);
            // Pull reference off of Story fetch
            DynamicJsonObject storyObject    = queryResult.Results.First();
            String            storyReference = storyObject["_ref"];

            Console.WriteLine("Looking for attachments off of Story: " + storyReference);
            // Grab the Attachments collection
            var storyAttachments = storyObject["Attachments"];
            // Let's download the first attachment for starters
            var myAttachmentFromStory = storyAttachments[0];
            // Pull the ref
            String myAttachmentRef = myAttachmentFromStory["_ref"];

            Console.WriteLine("Found Attachment: " + myAttachmentRef);
            // Fetch fields for the Attachment
            string[] attachmentFetch = { "ObjectID", "Name", "Content", "ContentType", "Size" };
            // Now query for the attachment
            DynamicJsonObject attachmentObject = restApi.GetByReference(myAttachmentRef, "true");
            // Grab the AttachmentContent
            DynamicJsonObject attachmentContentFromAttachment = attachmentObject["Content"];
            String            attachmentContentRef            = attachmentContentFromAttachment["_ref"];

            // Lastly pull the content
            // Fetch fields for the Attachment
            string[] attachmentContentFetch = { "ObjectID", "Content" };
            // Now query for the attachment
            Console.WriteLine("Querying for Content...");
            DynamicJsonObject attachmentContentObject = restApi.GetByReference(attachmentContentRef, "true");

            Console.WriteLine("AttachmentContent: " + attachmentObject["_ref"]);
            String base64EncodedContent = attachmentContentObject["Content"];
            // File information
            String attachmentSavePath = "C:\\Users\\username\\";
            String attachmentFileName = attachmentObject["Name"];
            String fullAttachmentFile = attachmentSavePath + attachmentFileName;
            // Determine attachment Content mime-type
            String attachmentContentType = attachmentObject["ContentType"];

            // Specify Image format
            System.Drawing.Imaging.ImageFormat attachmentImageFormat;
            try
            {
                attachmentImageFormat = getImageFormat(attachmentContentType);
            }
            catch (System.ArgumentException e)
            {
                Console.WriteLine("Invalid attachment file format:" + e.StackTrace);
                Console.WriteLine("Don't know how to handle: " + attachmentContentType);
                return;
            }
            try {
                // Convert base64 content to Image
                Console.WriteLine("Converting base64 AttachmentContent String to Image.");
                // Convert Base64 string to bytes
                byte[] bytes = Convert.FromBase64String(base64EncodedContent);
                Image  myAttachmentImage;
                using (MemoryStream ms = new MemoryStream(bytes))
                {
                    myAttachmentImage = Image.FromStream(ms);
                    // Save the image
                    Console.WriteLine("Saving Image: " + fullAttachmentFile);
                    myAttachmentImage.Save(fullAttachmentFile, System.Drawing.Imaging.ImageFormat.Jpeg);
                    Console.WriteLine("Finished Saving Attachment: " + fullAttachmentFile);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Unhandled exception occurred: " + e.StackTrace);
                Console.WriteLine(e.Message);
            }

            Console.ReadKey();
        }
		private void TestHelperDeleteItem(RallyRestApi restApi, string reference)
		{
			OperationResult deleteResponse = restApi.Delete(Ref.GetRelativeRef(reference));
			dynamic testEmpty = restApi.GetByReference(reference);
			Assert.IsNull(testEmpty);
		}
Exemple #31
0
        static void Main(string[] args)
        {
            //Initialize the REST API
            RallyRestApi restApi;
            String       rallyUserName   = "******";
            String       rallyPassword   = "******";
            String       rallyURL        = "https://rally1.rallydev.com";
            String       wsapiVersion    = "1.41";
            String       myWorkspaceName = "My Workspace";

            restApi = new RallyRestApi(
                rallyUserName,
                rallyPassword,
                rallyURL,
                wsapiVersion
                );

            // Get a Reference to Target Workspace
            Request workspaceRequest = new Request("workspace");

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

            workspaceRequest.Query = new Query("Name", Query.Operator.Equals, myWorkspaceName);
            QueryResult workspaceQueryResults = restApi.Query(workspaceRequest);

            var targetWorkspace = workspaceQueryResults.Results.First();

            Console.WriteLine("Found Target Workspace: " + targetWorkspace["Name"]);

            String workspaceRef = targetWorkspace["_ref"];

            //Query for Target Tag
            Request tagRequest = new Request("tag");

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

            // Query all Tags for a tag named "Montane"
            tagRequest.Query = new Query("Name", Query.Operator.Equals, "Tundra");
            QueryResult queryTagResults = restApi.Query(tagRequest);

            var  targetTagResult = queryTagResults.Results.First();
            long tagOID          = targetTagResult["ObjectID"];

            DynamicJsonObject targetTag = restApi.GetByReference("tag", tagOID, "Name", "ObjectID");

            // Query for User Story
            // FormattedID of target story
            String targetStoryFormattedID = "US5";

            Request storyRequest = new Request("hierarchicalrequirement");

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


            storyRequest.Query = new Query("FormattedID", Query.Operator.Equals, targetStoryFormattedID);
            QueryResult queryStoryResults = restApi.Query(storyRequest);

            var targetUserStory = queryStoryResults.Results.First();

            Console.WriteLine("Found Target User Story: " + targetUserStory["Name"]);

            // Grab collection of existing Tags
            var existingTags = targetUserStory["Tags"];

            // Summarize Existing Tags
            Console.WriteLine("Existing Tags for Story" + targetStoryFormattedID + ": ");
            foreach (var tag in existingTags)
            {
                Console.WriteLine(tag["Name"]);
            }

            long targetOID = targetUserStory["ObjectID"];

            // Now do update of the User Story

            // Tags collection on object is expected to be a System.Collections.ArrayList
            var targetTagArray = existingTags;

            targetTagArray.Add(targetTag);

            DynamicJsonObject toUpdate = new DynamicJsonObject();

            toUpdate["Tags"] = targetTagArray;

            OperationResult updateResult = restApi.Update("HierarchicalRequirement", targetOID, toUpdate);

            foreach (var error in updateResult.Errors)
            {
                Console.WriteLine(error.ToString());
            }

            // Re-read target Story
            DynamicJsonObject updatedStory = restApi.GetByReference(targetUserStory["_ref"], "Tags,Name");
            var updatedTags = updatedStory["Tags"];

            // Summarize Updated Tags
            Console.WriteLine("Updated Tags for Story" + targetStoryFormattedID + ": ");
            foreach (var tag in updatedTags)
            {
                Console.WriteLine(tag["Name"]);
            }

            // Create a New Tag, and add New Tag to Story
            DynamicJsonObject newTag = new DynamicJsonObject();

            newTag["Name"] = "Boreal";

            CreateResult createResult = restApi.Create(workspaceRef, "Tag", newTag);

            // Get the ref of the created Tag
            String newTagRef = createResult.Reference;

            // Read the Target Tag
            DynamicJsonObject newTagRead = restApi.GetByReference(newTagRef, "Name");

            // Add the newly-created Tag to the Story
            targetTagArray.Add(newTagRead);
            toUpdate["Tags"] = targetTagArray;

            updateResult = restApi.Update("HierarchicalRequirement", targetOID, toUpdate);

            // Re-read target Story
            updatedStory = restApi.GetByReference(targetUserStory["_ref"], "Tags,Name");
            updatedTags  = updatedStory["Tags"];

            // Summarize Updated Tags
            Console.WriteLine("Updated Tags (with newly-created Tag for Story" + targetStoryFormattedID + ": ");
            foreach (var tag in updatedTags)
            {
                Console.WriteLine(tag["Name"]);
            }
            Console.ReadKey();
        }
		private void AssertCanUpdate(RallyRestApi restApi)
		{
			var dynamicJson = new DynamicJsonObject();
			dynamicJson["Name"] = "Dont delete me please " + DateTime.Now.Second;
			OperationResult response = restApi.Update("Defect", defectOid, dynamicJson);
			Assert.AreEqual(0, response.Errors.Count);
			dynamic updateDefect = restApi.GetByReference("/Defect/" + defectOid + ".js");
			Assert.AreEqual(dynamicJson["Name"], updateDefect.Name);
		}
		private void AssertCanUpdate(RallyRestApi restApi)
		{
			// Create test defect
			var defect = TestHelperCreateDefect(restApi);
			var defectOid = Ref.GetOidFromRef(defect);

			var dynamicJson = new DynamicJsonObject();
			dynamicJson["Name"] = "Dont delete me please " + DateTime.Now.Second;
			OperationResult response = restApi.Update("Defect", defectOid, dynamicJson);
			Assert.AreEqual(0, response.Errors.Count);
			dynamic updateDefect = restApi.GetByReference("/Defect/" + defectOid + ".js");
			Assert.AreEqual(dynamicJson["Name"], updateDefect.Name);

			// Now delete it
			TestHelperDeleteItem(restApi, defect);
		}
		private void AssertCanDelete(RallyRestApi restApi, bool includeFullData = false)
		{
			var dynamicJson = new DynamicJsonObject();
			dynamicJson["Name"] = "C# Json Rest Toolkit Test Defect";
			if (includeFullData)
			{
				dynamicJson["Owner"] = restApi.GetCurrentUser()["_ref"];
				dynamicJson["Package"] = "Package A";
			}
			CreateResult response = restApi.Create("defect", dynamicJson);
			Assert.AreEqual(0, response.Errors.Count);
			Assert.IsTrue(response.Reference.ToLower().Contains("defect"));
			OperationResult deleteResponse = restApi.Delete(Ref.GetRelativeRef(response.Reference));
			dynamic testDefectEmpty = restApi.GetByReference(response.Reference);
			Assert.IsNull(testDefectEmpty);
		}
		private void AssertCanCreate(RallyRestApi restApi)
		{
			var dynamicJson = new DynamicJsonObject();
			dynamicJson["Name"] = "C# Json Rest Toolkit Test Defect";
			CreateResult response = restApi.Create("defect", dynamicJson);
			Assert.AreEqual(0, response.Errors.Count);
			Assert.IsTrue(response.Reference.ToLower().Contains("defect"));
			dynamic testDefect = restApi.GetByReference(response.Reference);
			Assert.AreEqual(dynamicJson["Name"], testDefect.Name);
			defectOid = Ref.GetOidFromRef(response.Reference);
		}
		public void ExampleMethodText()
		{
			string username = "******";
			string password = "******";
			// Initialize the REST API. You can specify a web service version if needed in the constructor.
			RallyRestApi restApi = new RallyRestApi();
			restApi.Authenticate(username, password, "https://preview.rallydev.com", proxy: null, allowSSO: false);

			//Create an item
			DynamicJsonObject toCreate = new DynamicJsonObject();
			toCreate["Name"] = "My Defect";
			CreateResult createResult = restApi.Create("defect", toCreate);

			//Update the item
			DynamicJsonObject toUpdate = new DynamicJsonObject();
			toUpdate["Description"] = "This is my defect.";
			OperationResult updateResult = restApi.Update(createResult.Reference,
											toUpdate);

			//Get the item
			DynamicJsonObject item = restApi.GetByReference(createResult.Reference);

			//Query for items
			Request request = new Request("defect");
			request.Fetch = new List<string>() { "Name", "Description", "FormattedID" };
			request.Query = new Query("Name", Query.Operator.Equals, "My Defect");
			QueryResult queryResult = restApi.Query(request);
			foreach (var result in queryResult.Results)
			{
				//Process item as needed
			}

			//Delete the item
			OperationResult deleteResult = restApi.Delete(createResult.Reference);
		}
 private void AssertCanDelete(RallyRestApi restApi)
 {
     var dynamicJson = new DynamicJsonObject();
     dynamicJson["Name"] = "C# Json Rest Toolkit Test Defect";
     CreateResult response = restApi.Create("defect", dynamicJson);
     Assert.AreEqual(0, response.Errors.Count);
     Assert.IsTrue(response.Reference.ToLower().Contains("defect"));
     OperationResult deleteResponse = restApi.Delete(Ref.GetRelativeRef(response.Reference));
     dynamic testDefectEmpty = restApi.GetByReference(response.Reference);
     Assert.IsNull(testDefectEmpty);
 }
		private void AssertCanDelete(RallyRestApi restApi, bool includeFullData = false)
		{
			// Create test defect
			var defect = TestHelperCreateDefect(restApi, includeFullData);
			var defectOid = Ref.GetOidFromRef(defect);

			OperationResult deleteResponse = restApi.Delete(Ref.GetRelativeRef(defect));
			dynamic testDefectEmpty = restApi.GetByReference(defect);
			Assert.IsNull(testDefectEmpty);
		}