Les Webservices Exchange - Création d’un contact

2 minutes read

Cet article va vous présenter comment créer un contact avec EWS. Si vous ne savez pas comment vous connecter aux EWS je vous conseille de lire mon précédent article traitant de ce sujet.

Cet article ne se veut pas exhaustif quant aux nombreuses variations et possibilités disponibles pour créer un contact, ceci doit-être considéré comme une introduction.

Tout d’abord nous allons préciser le dossier dans lequel nous allons sauvegarder le contact en créant une instance de la classe TargetFolderIdType. Celle-ci contient une propriété Item grâce à laquelle nous allons pouvoir renseigner le chemin vers le dossier en question. Ici j’utilise le dossier par défaut des contacts qui est connu et disponible via une énumération du nom de DistinguishedFolderIdNameType.

var folder = new TargetFolderIdType
{
    // On utilise un chemin pré-enregistré ici contacts.
    Item = new DistinguishedFolderIdType { Id = DistinguishedFolderIdNameType.contacts }
};

Nous allons ensuite créer une instance de PhysicalAddressDictionaryEntryType qui, comme son nom l’indique, va nous permettre de renseigner une des adresses du contacts(notez bien qu’il y a plusieurs adresses possibles par contact).

var mcnextAddress = new PhysicalAddressDictionaryEntryType
{
    Key = PhysicalAddressKeyType.Business, // On précise que c'est une adresse de bureau
    Street = "2 rue de châteaudun",
    PostalCode = "75009",
    City = "Paris",
    CountryOrRegion = "France"
};

Nous procédons ensuite de la même façon pour les numéros de téléphones. Et pour les adresses mail.

var emailAdress = new EmailAddressDictionaryEntryType
{
    Key = EmailAddressKeyType.EmailAddress1, // Adresse1
    Value = "john@mu.lan"
};

var fakePhone = new PhoneNumberDictionaryEntryType
{
    Key = PhoneNumberKeyType.BusinessPhone, // Téléphone de bureau
    Value = "0123456789"
};

Nous créons ensuite l’instance de ContactItemType représentant le contact. Notez bien que vous pouvez affecter plusieurs adresses, numéros de téléphones ou emails à un contact. Si vous faîtes ainsi, prenez garde à ne pas mettre deux adresses, deux numéros de téléphones ou deux emails du même type (PhysicalAddressKeyType, PhoneNumberKeyType, EmailAddressKeyType) sinon seule la dernière entrée ajoutée sera prise en compte.

var contact = new ContactItemType()
{
    Surname = "Thiriet",
    GivenName = "John",
    CompanyName = "MCNEXT",
    FileAs = "John",
    EmailAddresses = new EmailAddressDictionaryEntryType[] { emailAdress },
    PhysicalAddresses = new PhysicalAddressDictionaryEntryType[] { mcnextAddress },
    PhoneNumbers = new PhoneNumberDictionaryEntryType[] { fakePhone }
};

Une fois les données du contact remplie et prêtes à être envoyées vers le serveur nous allons initialiser la requête de création de contact.

Tout d’abord nous instancions un tableau des objets à créer côté serveur.

var items = new NonEmptyArrayOfAllItemsType();
items.Items = new ContactItemType[] { contact };

Nous instancions ensuite une requête de création d’éléments Exchange en lui assignant la liste des objets à créer ainsi que le dossier dans lequel les créer.

var cit = new CreateItemType()
{
    SavedItemFolderId = folder,
    Items = items
};

Il ne reste plus qu’a envoyer la requête au serveur et à admirer le résultat!

CreateItemResponseType response = esb.CreateItem(cit);

clip_image002

Le prochain article vous montrera comment créer une tâche en utilisant quasiment le même processus.

Updated:

Leave a Comment