Les webservices Exchange – Création d’un rendez-vous

1 minutes read

Après avoir appris à créer des contacts et des tâches je vais vous montrer comment créer des rendez-vous. Par rendez-vous j’entends toute information devant être ajoutée au calendrier.

Le processus d’ajout se déroule à peu de choses près de la même manière que pour les tâches. Je vais donc réutiliser le même schéma que précédemment.

Voici la méthode pour créer un contact de test commenté :

private static CalendarItemType GetTestCalendarItem()
{
    CalendarItemType item = new CalendarItemType();

    item.Subject = "Ramen !";

    /* Date et heure de début */
    item.StartSpecified = true;
    item.Start = new DateTime(2010, 4, 13, 12, 42, 0); // Le 13/04/2010 à 12h42
    
    /* Date et heure de fin */
    item.EndSpecified = true;
    item.End = new DateTime(2010, 4, 13, 13, 42, 0); // Le 13/04/2010 à 13h42

    /* Lieu du rendez-vous */
    item.Location = "Restaurant japonais, rue Saint-Anne";

    /* Corps de l'objet */
    item.Body = new BodyType()
    {
        Value = "Repas avec Pedro pour manger des ramens."
     };

    /* On indique que c'est un rendez-vous personnel */
    item.SensitivitySpecified = true;
    item.Sensitivity = SensitivityChoicesType.Personal;

    /* Importance du rendez-vous */
    item.Importance = ImportanceChoicesType.Normal;

    return item;
}

Voici la méthode pour insérer cet élément dans le calendrier (là encore, la méthode est quasiment identique que celle vu pour la création de tâche) :

private static void CreateCalendarItem(ExchangeServiceBinding esb, CalendarItemType item)
{
    var folder = new TargetFolderIdType {
        Item = new DistinguishedFolderIdType { Id = DistinguishedFolderIdNameType.calendar }
    };

    CreateItem(esb, folder, new ItemType[] { item });
}

Une dernière chose est cependant à ajouter à la méthode CreateItem dans le cas de la création d’un rendez-vous. En effet une erreur surviendra vous informant qu’une propriété n’a pas été renseignée. Voici donc le code de la méthode CreateItem mis à jour (les parties en pointillés correspondent à celles qui n’ont pas été modifiées) :

private static void CreateItem(
 ExchangeServiceBinding esb,
 TargetFolderIdType folder,
 ItemType[] newItems)
    . . .
    var cit = new CreateItemType()
    {
        SavedItemFolderId = folder,
        Items = items,
        SendMeetingInvitations = CalendarItemCreateOrDeleteOperationType.SendToNone,
        SendMeetingInvitationsSpecified = true
    };
   . . .
}

La propriété ajoutée est SendMeetingInvitations et indique au serveur Exchange s’il doit transférer le rendez-vous aux gens y participants où s’il ne dois rien faire. Ici il ne fera rien car il n’y a pas de participants.

Comme toujours voici une capture d’écran du résultat :

CalendarItemCreationResult

Updated:

Leave a Comment