Updating Microsoft Test Manager test runs using C#

public void TFS_UpdateTestResult(string strTestPlan, string strTestSuiteId)
{
    Uri tfsUri = new Uri("http://tfs/MyCollection");
    string teamProjectName = "My.Project";
    TfsTeamProjectCollection myTfsTeamProjectCollection = new TfsTeamProjectCollection(tfsUri);
    ITestManagementService service = (ITestManagementService)myTfsTeamProjectCollection.GetService(typeof(ITestManagementService));
    ITestManagementTeamProject project = service.GetTeamProject(teamProjectName);

    // Create test plan.
    ITestPlanCollection testPlans = project.TestPlans.Query("SELECT * FROM TestPlan WHERE PlanName = '" + strTestPlan + "'");
    //for (int i = 0; i < testPlans.Count ; i++ ) {
    //	Report.Info ("TFS", "Test Plan #" + i + ": " + testPlans[i].Name);
    //}

    // Get the test plan
    ITestPlan testPlan = testPlans[0];

    // Get all test points for specific suite
    ITestPointCollection testPoints = testPlan.QueryTestPoints("SELECT * FROM TestPoint WHERE SuiteId = " + strTestSuiteId); 
    for (int i = 0; i < testPoints.Count ; i++ ) {
        Report.Info ("TFS", "Test Point ID #" + testPoints[i].Id + ": Test Case ID = " + testPoints[i].TestCaseId);
    }

    // Create run and add all test points to it
    ITestRun testRun = testPlan.CreateTestRun(true);
    foreach (ITestPoint testPoint in testPoints) 
    { 
        testRun.AddTestPoint(testPoint, null); 
    }
    testRun.Save();

    // Update test results
    ITestCaseResultCollection testResults = testRun.QueryResults();
    Report.Info ("TFS", "Count of test cases in result -> " + testResults.Count);
    foreach(ITestCaseResult result in testResults)
    {
        Report.Info ("TFS", "result.TestCaseId = " + result.TestCaseId);
        result.Outcome = TestOutcome.Passed;
        result.State = TestResultState.Completed;
        result.Save();
    }
    testRun.Save();
    testRun.Refresh();
}