diff --git a/ClientLibrary/Snippets/Microsoft.TeamServices.Samples.Client/Work/TeamSettingsSample.cs b/ClientLibrary/Snippets/Microsoft.TeamServices.Samples.Client/Work/TeamSettingsSample.cs index 252608e5..5da3a8cc 100644 --- a/ClientLibrary/Snippets/Microsoft.TeamServices.Samples.Client/Work/TeamSettingsSample.cs +++ b/ClientLibrary/Snippets/Microsoft.TeamServices.Samples.Client/Work/TeamSettingsSample.cs @@ -82,5 +82,97 @@ public TeamSetting UpdateTeamSettings() return result; } + + [ClientSampleMethod] + public TeamMemberCapacityIdentityRef GetTeamMemberCapacity() + { + VssConnection connection = Context.Connection; + WorkHttpClient workClient = connection.GetClient(); + + Guid projectId = ClientSampleHelpers.FindAnyProject(this.Context).Id; + Guid teamId = ClientSampleHelpers.FindAnyTeam(this.Context, projectId).Id; + Guid userId = ClientSampleHelpers.GetCurrentUserId(this.Context); + + TeamContext teamContext = new TeamContext(projectId, teamId); + List result = workClient.GetTeamIterationsAsync(teamContext, "current").Result; + Guid iterationId = result[0].Id; + + TeamMemberCapacityIdentityRef capacity = workClient.GetCapacityWithIdentityRefAsync(teamContext, iterationId, userId).Result; + + return capacity; + } + + [ClientSampleMethod] + public List GetTeamCapacity() + { + VssConnection connection = Context.Connection; + WorkHttpClient workClient = connection.GetClient(); + + Guid projectId = ClientSampleHelpers.FindAnyProject(this.Context).Id; + Guid teamId = ClientSampleHelpers.FindAnyTeam(this.Context, projectId).Id; + + TeamContext teamContext = new TeamContext(projectId, teamId); + List result = workClient.GetTeamIterationsAsync(teamContext, "current").Result; + Guid iterationId = result[0].Id; + + List capacity = workClient.GetCapacitiesWithIdentityRefAsync(teamContext, iterationId).Result; + + return capacity; + } + + [ClientSampleMethod] + public TeamMemberCapacityIdentityRef UpdateTeamMemberCapacity() + { + VssConnection connection = Context.Connection; + WorkHttpClient workClient = connection.GetClient(); + + Guid projectId = ClientSampleHelpers.FindAnyProject(this.Context).Id; + Guid teamId = ClientSampleHelpers.FindAnyTeam(this.Context, projectId).Id; + Guid userId = ClientSampleHelpers.GetCurrentUserId(this.Context); + + TeamContext teamContext = new TeamContext(projectId, teamId); + List result = workClient.GetTeamIterationsAsync(teamContext, "current").Result; + Guid iterationId = result[0].Id; + + TeamMemberCapacityIdentityRef capacity = workClient.GetCapacityWithIdentityRefAsync(teamContext, iterationId, userId).Result; + CapacityPatch capacityPatch = new CapacityPatch() + { + Activities = capacity.Activities.Select(a => { return new Activity { Name = a.Name, CapacityPerDay = a.CapacityPerDay + 1 }; }), + DaysOff = capacity.DaysOff + }; + + TeamMemberCapacityIdentityRef updatedCapacity = workClient.UpdateCapacityWithIdentityRefAsync(capacityPatch, teamContext, iterationId, userId).Result; + + return updatedCapacity; + } + + [ClientSampleMethod] + public List ReplaceTeamMemberCapacities() + { + VssConnection connection = Context.Connection; + WorkHttpClient workClient = connection.GetClient(); + + Guid projectId = ClientSampleHelpers.FindAnyProject(this.Context).Id; + Guid teamId = ClientSampleHelpers.FindAnyTeam(this.Context, projectId).Id; + + TeamContext teamContext = new TeamContext(projectId, teamId); + List result = workClient.GetTeamIterationsAsync(teamContext, "current").Result; + Guid iterationId = result[0].Id; + + List capacity = workClient.GetCapacitiesWithIdentityRefAsync(teamContext, iterationId).Result; + var updatedCapacity = capacity.Select(teamMemberCapacity => + { + return new TeamMemberCapacityIdentityRef() + { + TeamMember = teamMemberCapacity.TeamMember, + Activities = teamMemberCapacity.Activities.Select(a => { return new Activity() { Name = a.Name, CapacityPerDay = a.CapacityPerDay }; }), + DaysOff = teamMemberCapacity.DaysOff + }; + }); + + var updatedCapacityResult = workClient.ReplaceCapacitiesWithIdentityRefAsync(updatedCapacity, teamContext, iterationId).Result; + + return updatedCapacityResult; + } } }