Editar e salvar itens de trabalho usando o modelo do objeto cliente para Team Foundation
Você pode alterar Fields, Links, e Attachments de WorkItem e então tente salvar as alterações usando WorkItem.Save ou o método de WorkItemStore.BatchSave .
Quando você tentar salvar as alterações, são avaliados com as regras para WorkItemType. Se os valores que você especifica seguem as regras, WorkItem é salvo, a revisão é incrementada, e o histórico é atualizado com as alterações mais recentes. Caso contrário, WorkItem não é salvo, a revisão não é incrementada, e o histórico não é atualizado.
Dica
Você pode salvar mais de um WorkItem ou WorkItemLink em uma única processamento usando o método de WorkItemStore.BatchSave .
Exemplo
O exemplo demonstra como editar e salvar itens de trabalho e como usar as propriedades de WorkItem.IsValid e de WorkItem.IsDirty .
Para usar este exemplo
Crie um aplicativo de console do C# (ou VB).
Adicione referências para os seguintes conjuntos de módulos (assemblies) :
Substitua o conteúdo de Module.vb (ou Module1.vb) com o seguinte exemplo:
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
namespace WorkItemTrackingSample
{
class Program
{
static void Main(string[] args)
{
Uri collectionUri = (args.Length < 1) ?
new Uri("http://server:port/vdir/DefaultCollection") : new Uri(args[0]);
// Connect to the server and the store.
TfsTeamProjectCollection teamProjectCollection =
new TfsTeamProjectCollection(collectionUri);
WorkItemStore workItemStore = teamProjectCollection.GetService<WorkItemStore>();
// Get a specific work item from the store. (In this case,
// get the work item with ID=1.)
WorkItem workItem = workItemStore.GetWorkItem(1);
// Set the value of a field to one that is not valid, and save the old
// value so that you can restore it later.
string oldAssignedTo = (string)workItem.Fields["Assigned to"].Value;
workItem.Fields["Assigned to"].Value = "Not a valid user";
// Display the results of this change.
if (workItem.IsDirty)
Console.WriteLine("The work item has changed but has not been saved.");
if (workItem.IsValid() == false)
Console.WriteLine("The work item is not valid.");
if (workItem.Fields["Assigned to"].IsValid == false)
Console.WriteLine("The value of the Assigned to field is not valid.");
// Try to save the work item while it is not valid, and catch the exception.
try
{
workItem.Save();
}
catch (ValidationException exception)
{
Console.WriteLine("The work item threw a validation exception.");
Console.WriteLine(exception.Message);
}
// Set the state to a valid value that is not the old value.
workItem.Fields["Assigned to"].Value = "ValidUser";
// If the work item is valid, save the changes.
if (workItem.IsValid())
{
workItem.Save();
Console.WriteLine("The work item was saved this time.");
}
// Restore the original value of the work item's Assigned to field, and save that change.
workItem.Fields["Assigned to"].Value = oldAssignedTo;
workItem.Save();
}
}
}
Imports System
Imports Microsoft.TeamFoundation.Client
Imports Microsoft.TeamFoundation.WorkItemTracking.Client
Module Module1
Sub Main(ByVal sArgs() As String)
Dim collectionUri As Uri
If sArgs.Length = 0 Then
collectionUri = New Uri("http://Server:port/vdir/DefaultCollection")
Else
collectionUri = New Uri(sArgs(1))
End If
' Connect to the server and the store.
Dim teamProjectCollection As New TfsTeamProjectCollection(collectionUri)
' Get a specific work item from the store. (In this case,
' get the work item with ID=1.)
Dim workItemStore As WorkItemStore
workItemStore = teamProjectCollection.GetService(Of WorkItemStore)()
Dim workItem As WorkItem
workItem = workItemStore.GetWorkItem(1)
' Set the value of a field to one that is not valid, and save the old
' value so that you can restore it later.
Dim oldAssignedTo As String
oldAssignedTo = workItem.Fields("Assigned To").Value
workItem.Fields("Assigned to").Value = "Not a Valid User"
' Display the results of this change
If (workItem.IsDirty) Then
Console.WriteLine("The work item has changed but has not been saved.")
End If
If (workItem.IsValid() = False) Then
Console.WriteLine("The work item is not valid.")
End If
If (workItem.Fields("Assigned to").IsValid = False) Then
Console.WriteLine("The value of the Assigned to field is not valid.")
End If
' Try to save the work item while it is not valid, and catch the exception.
Try
workItem.Save()
Catch exception As ValidationException
End Try
' Set the state to a valid value that is not the old value.
workItem.Fields("Assigned to").Value = "ValidUser"
' If the work item is valid, save the changes.
If (workItem.IsValid()) Then
workItem.Save()
Console.WriteLine("The work item was saved this time.")
End If
' Restore the original value of the work item's Assigned to field, and save that change
workItem.Fields("Assigned to").Value = oldAssignedTo
workItem.Save()
End Sub
End Module
Consulte também
Conceitos
Criar um item de trabalho usando o modelo do objeto cliente para Team Foundation