public void ApprovePendingRelease() { string projectName = ClientSampleHelpers.FindAnyProject(this.Context).Name; string assignedToFilter = ClientSampleHelpers.GetCurrentUserDisplayName(this.Context); // Get a release client instance VssConnection connection = Context.Connection; ReleaseHttpClient releaseClient = connection.GetClient <ReleaseHttpClient>(); ReleaseApproval updateApproval = new ReleaseApproval { Status = ApprovalStatus.Approved, Comments = "Good to go!" }; // Get all pending approval to the current user IList <ReleaseApproval> releaseApprovalsPage = releaseClient.GetApprovalsAsync(project: projectName, assignedToFilter: assignedToFilter).Result; ReleaseApproval releaseApprovalToApprove = releaseApprovalsPage.FirstOrDefault(); if (releaseApprovalToApprove != null) { ReleaseApproval approval = releaseClient.UpdateReleaseApprovalAsync(project: projectName, approval: updateApproval, approvalId: releaseApprovalToApprove.Id).Result; Console.WriteLine("{0} {1}", approval.Id.ToString().PadLeft(6), approval.Status); } }
public IEnumerable <ReleaseApproval> ListPendingApprovalsForASpecificUser() { string projectName = ClientSampleHelpers.FindAnyProject(this.Context).Name; string assignedToFilter = ClientSampleHelpers.GetCurrentUserDisplayName(this.Context); // Get a release client instance VssConnection connection = Context.Connection; ReleaseHttpClient2 releaseClient = connection.GetClient <ReleaseHttpClient2>(); List <ReleaseApproval> releaseApprovals = new List <ReleaseApproval>(); // Iterate (as needed) to get the full set of approvals int continuationToken = 0; bool parseResult; do { IPagedCollection <ReleaseApproval> releaseApprovalsPage = releaseClient.GetApprovalsAsync2(project: projectName, assignedToFilter: assignedToFilter, continuationToken: continuationToken).Result; releaseApprovals.AddRange(releaseApprovalsPage); int parsedContinuationToken = 0; parseResult = int.TryParse(releaseApprovalsPage.ContinuationToken, out parsedContinuationToken); if (parseResult) { continuationToken = parsedContinuationToken; } } while ((continuationToken != 0) && parseResult); // Show the approvals foreach (ReleaseApproval releaseApproval in releaseApprovals) { Console.WriteLine("{0} {1}", releaseApproval.Id.ToString().PadLeft(6), releaseApproval.Status); } return(releaseApprovals); }