Team Foundation のクライアント オブジェクト モデルを使用した作業項目の編集と保存
WorkItem の Fields、Linksと Attachments を変更し、WorkItem.SaveWorkItemStore.BatchSave かの方法でそれらの変更を保存することができます。
変更を保存しようとするとこれらは WorkItemTypeのルールに対して評価されます。 指定した値がそのルールに、この WorkItem は保存されますが、変更が大きくなり、履歴は、最新の変更で更新されます。 それ以外の場合は、WorkItem、変更は保存されませんが発生しない、履歴は更新されません。
注意
WorkItemStore.BatchSave の方法で一つのラウンド トリップの複数の WorkItem または WorkItemLink を保存できます。
使用例
例に作業項目を編集して保存方法、および WorkItem.IsValid と WorkItem.IsDirty のプロパティを使用する方法を示します。
この例を使用します。
C# (または) VB コンソール アプリケーションを作成します。
次のアセンブリへの参照を追加します。
次の例で Program.cs (または) Module1.vb の内容を交換します:
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
参照
概念
Team Foundation のクライアント オブジェクト モデルを使用した作業項目の作成