在过去的 1.5 天里,我一直在尝试弄清楚这个 API,但现在我正在努力将新创建的联系人添加到现有的组中。
我第一次运行程序时使用以下代码行创建了一个组:
public static ContactGroup CreateGroup(ExchangeService service)
{
// Create a new contact group object.
ContactGroup myContactGroup = new ContactGroup(service);
// Give the group a name.
myContactGroup.DisplayName = "Test Contact Group";
// Save the group.
myContactGroup.Save();
return myContactGroup;
}
然后我使用以下代码将联系人添加到组中:
public static void AddContactToGroup(ContactGroup myContactGroup, Contact contact)
{
myContactGroup.Members.AddContactEmailAddress(contact, EmailAddressKey.EmailAddress2);
myContactGroup.Update(ConflictResolutionMode.AlwaysOverwrite);
现在我想使用以下代码创建一个新联系人:
public static Contact tempCont(ExchangeService service)
{
Contact contact = new Contact(service);
contact.GivenName = "Jonas";
contact.Surname = "Jonassen";
contact.FileAsMapping = FileAsMapping.SurnameCommaGivenName;
contact.PhoneNumbers[PhoneNumberKey.HomePhone] = "12345678";
contact.EmailAddresses[EmailAddressKey.EmailAddress1] = new EmailAddress("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="016b6e6f6072416b6e6f607272646f2f656a" rel="noreferrer noopener nofollow">[email protected]</a>");
PhysicalAddressEntry paEntry1 = new PhysicalAddressEntry();
paEntry1.Street = "123 Main Boulevard";
paEntry1.City = "Kbh";
paEntry1.State = "";
paEntry1.PostalCode = "1200";
paEntry1.CountryOrRegion = "Denmark";
contact.PhysicalAddresses[PhysicalAddressKey.Home] = paEntry1;
contact.Save();
return contact;
}
现在我想将这个新联系人添加到现有的 contactGroup 中。问题是,我无法获取“myContactGroup”。我猜我必须找到 ContactGroup 的 ID,或者可能是完全不同的东西。老实说,我不知道如何解决这个问题。任何帮助将不胜感激!
最佳答案
您需要做的是找到要添加联系人的 ContactGroup,例如使用 SearchFilter 来执行此操作,然后只需使用“添加成员”方法将联系人添加到组中,例如
ItemView ItemView = new ItemView(1);
SearchFilter cntGroup = new SearchFilter.IsEqualTo(ItemSchema.ItemClass, "IPM.DistList");
SearchFilter cntGroupName = new SearchFilter.IsEqualTo(ContactGroupSchema.DisplayName, "Test Contact Group");
SearchFilter sfCol = new SearchFilter.SearchFilterCollection(LogicalOperator.And) { cntGroup, cntGroupName };
FolderId ContactFolder = new FolderId(WellKnownFolderName.Contacts, "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="611412041321050e0c00080f4f020e0c" rel="noreferrer noopener nofollow">[email protected]</a>");
FindItemsResults<Item> fiCntResults = service.FindItems(ContactFolder, sfCol, ItemView);
if (fiCntResults.Items.Count == 1)
{
ContactGroup contactGroup = (ContactGroup)fiCntResults.Items[0];
Contact Contact2 = new Contact(service);
Contact2.EmailAddresses[EmailAddressKey.EmailAddress1] = new EmailAddress("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b2d0ded3daf2d0ded3da9cd6d9" rel="noreferrer noopener nofollow">[email protected]</a>");
Contact2.Subject = "Blah";
Contact2.Save();
GroupMember gm = new GroupMember(Contact2,EmailAddressKey.EmailAddress1);
contactGroup.Members.Add(gm);
contactGroup.Update(ConflictResolutionMode.AlwaysOverwrite);
}
干杯 格伦
关于c# - 将新联系人添加到现有联系人组 ews api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25266025/