2016-09-02 2 views
1

Nous migrons notre application de MAPI à EWS Managed API. Dans MAPI, nous pouvons créer un nouveau dossier ou l'ouvrir s'il existe en utilisant la seule méthode MAPI IMAPIFolder :: CreateFolder.Créer un dossier ou l'ouvrir s'il existe en utilisant EWS Managed API

Mais je ne peux pas trouver une telle fonctionnalité dans EWS. Je peux créer un dossier comme celui-ci (mais il émet une exception si ce dossier existe déjà dans le dossier cible):

var newFolder = new Folder(service); 
newFolder.DisplayName = "name"; 
newFolder.Save(WellKnownFolderName.Root); 

ou ouvert (trouver) comme ça

var filter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "name"); 
service.FindFolders(WellKnownFolderName.Root, filter, new FolderView(1)); 

à savoir Je dois attraper cette exception et trouver le dossier en utilisant la méthode ExchangeService.FindFolders. Tout cela a l'air super bizarre. Et la pire chose est ce que nous devons utiliser ces deux appels EWS dans de tels cas.

Est-il possible d'utiliser un appel EWS unique pour obtenir la fonction "CreateOrOpen"? Peut-être construire une demande EWS manuellement ou?

Répondre

0

Même si j'étais confronté à un problème similaire, Pour chaque opération, nous devons effectuer un appel de service EWS. Je n'ai trouvé aucune méthode de service EWS pour exécuter les deux fonctionnalités (Créer & Open). Donc, je compris avec la performance et faire plusieurs appels comme ci-dessous.

bool isExists = ews.FolderExists(EwsFolderId.Root, "name"); 
if (!isExists){ 
    ews.CreateFolder(EwsFolderId.Root, "name"); 
}else{ 
    //Find folder or get folder code goes here 
    }