Partager via


Tâche 2 : définir l'interface IOrderingService

Dans cette tâche, vous définissez l'interface IOrderingService et une classe utilisée pour passer des données de l'application hôte au workflow d'ordinateur d'état lorsqu'une nouvelle commande est soumise.

L'interface IOrderingService est utilisée pour simplifier la communication entre l'application hôte de bon de commande simple et le OrderProcessingWorkflow.

L'interface contient une méthode unique et un événement défini :

  • La méthode ItemStatusUpdate est utilisée par le OrderProcessingWorkflow pour renvoyer des mises à jour d'état à l'application hôte.

  • L'événement NewOrder est l'événement initial qui démarre l'activité d'état WaitingForOrder. Il est déclenché par l'application hôte de bon de commande simple chaque fois que l'utilisateur soumet une nouvelle commande.

NoteRemarque :

Bien qu'il soit conseillé de suivre les exercices de façon linéaire, ce n'est pas requis. Vous pouvez démarrer cet exercice en ouvrant l'exemple de projet et en continuant avec les étapes de la section suivante.

Définition de la classe NewOrderEventArgs

En premier lieu, vous devez définir la classe utilisée pour passer des données de l'application hôte au worfkflow d'ordinateur d'état lorsqu'une commande est soumise.

Pour définir la classe NewOrderEventArgs

  1. Dans le fichier source StateMachineWorkflow, créez une nouvelle classe public nommée NewOrderEventArgs qui dérive de la classe de base EventArgs.

    Rendez la classe sérialisable en appliquant la classe SerializableAttribute. Cette classe doit être définie dans l'espace de noms Microsoft.Samples.Workflow.Tutorials.StateMachineWorkflow.

    <Serializable()> _
    Public Class NewOrderEventArgs : Inherits ExternalDataEventArgs
    End Class
    
    [Serializable]
    public class NewOrderEventArgs : ExternalDataEventArgs
    {
    }
    
  2. Dans la classe NewOrderEventArgs, déclarez les champs suivants :

    Modificateur d'accès Type Nom

    Private

    System.Guid

    orderItemId

    Private

    System.String

    orderItem

    Private

    System.Int32

    orderQuantity

    private Guid orderItemId;
    private string orderItem;
    private int orderQuantity;
    
  3. Créez un constructeur pour la classe NewOrderEventArgs qui prend les éléments suivants en tant que paramètres :

    • un Guid nommé itemId ;

    • un String nommé item ;

    • un Int32 nommé quantity.

    Dans le corps du constructeur, assignez chaque champ que vous avez créé à l'étape précédente à l'aide du paramètre associé passé dans le constructeur.

    public NewOrderEventArgs(Guid itemId, string item, int quantity)
        : base(itemId)
    {
        this.orderItemId = itemId;
        this.orderItem = item;
        this.orderQuantity = quantity;
    }
    
  4. Dans la classe NewOrderEventArgs, créez une propriété System.Guid publique nommée ItemId.

    Créez une méthode get pour cette propriété, puis retournez la valeur du champ orderItemId et une méthode set qui définit le champ orderItemId.

    public Guid ItemId
    {
        get { return orderItemId; }
        set { orderItemId = value; }
    }
    
  5. Dans la classe NewOrderEventArgs, créez une propriété System.String publique nommée Item.

    Créez une méthode get pour cette propriété, puis retournez la valeur du champ orderItem et une méthode set qui définit le champ orderItem.

    public string Item
    {
        get { return orderItem; }
        set { orderItem = value; }
    }
    
  6. Dans la classe NewOrderEventArgs, créez une propriété System.Int32 publique nommée Quantity.

    Créez une méthode get pour cette propriété, puis retournez la valeur du champ orderQuantity et une méthode set qui définit le champ orderQuantity.

    Tut_Create_State_Machine#14
    

Création de l'interface utilisateur

Ensuite, vous définissez l'interface IOrderingService. Cette interface est utilisé pour la communication entre le workflow et l'application hôte.

Titre de procédure

Pour définir l'interface IOrderingService

  1. Après la définition de la classe NewOrderEventArgs, créez une interface publique nommée IOrderingService.

    Cette interface étant utilisée pour la communication entre l'application hôte et le OrderProcessingWorkflow, appliquez l'attribut ExternalDataExchangeAttribute.

    <ExternalDataExchange()> _
    Public Interface IOrderingService
    End Interface
    
    [ExternalDataExchange]
    public interface IOrderingService
    {
    }
    
  2. Dans l'interface IOrderingService, créez une méthode nommée ItemStatusUpdate qui prend les éléments suivants en tant que paramètres :

    • un Guid nommé orderId ;

    • un String nommé newStatus.

    void ItemStatusUpdate(Guid orderId, string newStatus);
    
  3. Dans l'interface IOrderingService, créez un nouvel événement nommé NewOrder dont le type est un EventHandler générique du type NewOrderEventArgs.

    event EventHandler<NewOrderEventArgs> NewOrder;
    

Compilation du code

Pour plus d'informations sur la compilation du code, consultez Compilation du code.

Dans la tâche suivante, Tâche 3 : implémenter l'interface IOrderingService, vous implémentez cette interface dans l'application hôte de bon de commande simple.

Voir aussi

Tâches

Tâche 3 : implémenter l'interface IOrderingService

Référence

ExternalDataExchangeAttribute

Concepts

Communication avec les workflows et les applications
Workflows d'ordinateur d'état

Autres ressources

Didacticiel : créer un workflow d'ordinateur d'état
Communications
HostCommunication Sample
Ordering State Machine
Simple State Machine

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.