Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

Modifier et enregistrer des éléments de travail à l'aide du Modèle d'objet client pour Team Foundation

Vous pouvez modifier Fields, Links, et Attachments d' WorkItem puis de tenter d'enregistrer ces modifications à l'aide de WorkItem.Save ou de la méthode d' WorkItemStore.BatchSave .

Lorsque vous essayez d'enregistrer vos modifications, ils sont évalués sur les règles de WorkItemType. Si les valeurs que vous spécifiez suivez ces règles, WorkItem est enregistré, sa balise est incrémentée, et son historique est mis à jour avec les modifications les plus récentes. Sinon, WorkItem n'est pas enregistré, la révision n'est pas incrémentée, et son historique n'est pas mis à jour.

Remarque Remarque

Vous pouvez enregistrer plusieurs WorkItem ou WorkItemLink dans une boucle à l'aide de la méthode d' WorkItemStore.BatchSave .

L'exemple montre comment modifier et enregistrer des éléments de travail et comment utiliser les propriétés d' WorkItem.IsValid et d' WorkItem.IsDirty .

Pour utiliser cet exemple

  1. Créez une application console C# (ou VB).

  2. Ajoutez des références aux assemblys suivants :

  3. Remplacez le contenu (Program.cs ou Module1.vb) par l'exemple suivant :

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();
        }
    }
}
Afficher: