Upravte a uložte pracovní položky pomocí objektového modelu klient pro Team Foundation
Můžete změnit Fields, Links, a Attachments z WorkItem a potom zkuste uložit tyto změny použít buď WorkItem.Save nebo WorkItemStore.BatchSave metoda.
Při pokusu o uložení změn jsou vyhodnocovány proti pravidla WorkItemType.Pokud hodnoty, které zadáte, postupujte podle těchto pravidel WorkItem je uložen, jeho revize je zvýšen a jeho historie je aktualizován nejnovější změny.Jinak WorkItem nebyl uložen, není jeho revize zvýšen a jeho historie není aktualizován.
[!POZNÁMKA]
Lze uložit více než jeden WorkItem nebo WorkItemLink v pomocí jediného round trip WorkItemStore.BatchSave metoda.
Příklad
V příkladu je ukázáno, jak upravit a uložit pracovní položky a použití WorkItem.IsValid a WorkItem.IsDirty vlastnosti.
Chcete-li použít tento příklad
Vytvoří aplikaci konzole C# (nebo jazyka Visual Basic).
Přidejte odkazy do následujících sestavení:
Nahradíte obsah Program.cs (nebo Module1.vb) v následujícím příkladu:
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
Viz také
Koncepty
Vytvořit pracovní položku pomocí objektového modelu klient Team Foundation
Psaní kódu pro různé typy pracovních položek pomocí objektového modelu klient pro Team Foundation
Rozšíření pracovní položku sledování pomocí objektového modelu klient pro Team Foundation