2017-07-26 1 views
0

J'utilise actuellement des services Web Exchange (EWS) pour créer un ContactGroup au nom d'un utilisateur que je suis ... se faisant passer pourEWS: Comment trouver le ItemId d'un contactgroup

Tout fonctionne très bien et ici est le code:

var email = "[email protected]"; 
var accountPassword = "myPassword"; 
var emailAccountToImpersonify = "[email protected]"; 

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013); 
service.Credentials = new NetworkCredential(email, accountPassword, "mydomain.com"); 
service.AutodiscoverUrl(email, RedirectionUrlValidationCallback); 

// Make sure the account [[email protected]] is a member of the ApplicationImpersonation admin role. 
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, emailAccountToImpersonify); 

// Create a new ContactGroup on behalf of [[email protected]] 
ContactGroup myContactGroup = new ContactGroup(service); 
myContactGroup.DisplayName = "Gazou"; 
myContactGroup.Members.Add(new GroupMember("[email protected]")); 
myContactGroup.Members.Add(new GroupMember("[email protected]")); 
myContactGroup.Members.Add(new GroupMember("[email protected]")); 
myContactGroup.Save(); 

Ce que je voudrais faire avant de créer le contactgroup Gazou est:

  • Vérifiez si le contactgroup Gazou existent déjà (ou pas).
  • Si c'est le cas, supprimez-le afin qu'il puisse être créé à nouveau.

Quelque chose comme:

ContactGroup existingContactGroup = ContactGroup.Bind(service, **ItemId**); 
if (existingContactGroup != null) 
{ 
    existingContactGroup.Delete(DeleteMode.HardDelete); 
} 
else 
{ 
    // Create a new ContactGroup on behalf of [[email protected]] 
    ContactGroup myContactGroup = new ContactGroup(service); 
    myContactGroup.DisplayName = "Gazou"; 
    myContactGroup.Members.Add(new GroupMember("[email protected]")); 
    myContactGroup.Members.Add(new GroupMember("[email protected]")); 
    myContactGroup.Members.Add(new GroupMember("[email protected]")); 
    myContactGroup.Save(); 
} 

Mais je ne peux pas sembler savoir comment pour trouver le ItemId de cette ContactGroup. Tout ce que je sais sur le ContactGroup est le DisplayNameGazou

Répondre

0

Il vous suffit de rechercher le dossier Contacts où le groupe est stocké avec un filtre de recherche sur la displayname par exemple quelque chose comme

 SearchFilter sfSearch = new SearchFilter.IsEqualTo(ContactGroupSchema.DisplayName, "NameOfGroup"); 
     FindItemsResults<Item> findCgResults = service.FindItems(WellKnownFolderName.Contacts, sfSearch, new ItemView(1)); 

devrait le faire

+0

Merci. J'ai changé ItemView (1) en ItemView (int.MaxValue) parce que j'ai réalisé que j'avais ContactGroup en double. – Vlince