EWS api - обновить отображаемое имя ContactsGroup - PullRequest
0 голосов
/ 07 сентября 2018

Я изо всех сил пытаюсь переименовать ContactsGroup в Outlook, используя API EWS. У меня есть способ переименовать группу:

    public bool ChangeGroupName(string oldGroupName, string newGroupName)
    {
        bool result = false;
        var folder = FindFolderByName(_folderName);
        if (folder == null)
        {
            return true;
        }

        ContactGroup group = FindGroupByName(oldGroupName, folder.Id);
        if (group != null)
        {
            group.DisplayName = newGroupName;
            group.Update(ConflictResolutionMode.AlwaysOverwrite);
        }
        result = (FindGroupByName(newGroupName, folder.Id) != null);
        return result;
    }

и способ поиска группы:

public ContactGroup FindGroupByName(string groupName, FolderId folderId)
{
    ItemView groupView = new ItemView(10);
    SearchFilter groupClassFilter = new SearchFilter.IsEqualTo(ItemSchema.ItemClass, "IPM.DistList");
    SearchFilter groupNameFilter = new SearchFilter.IsEqualTo(ContactGroupSchema.DisplayName, groupName);
    SearchFilter groupFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.And) { groupClassFilter, groupNameFilter };

    FindItemsResults<Item> groupFindResult = _service.FindItems(folderId, groupFilter, groupView);

    if (groupFindResult.Items.Count == 1)
    {
        var group = (ContactGroup)groupFindResult.Items[0];
        ContactGroup contactGroup = ContactGroup.Bind(_service, group.Id);
        return contactGroup;
    }
    return null;
}

После того, как я переименую группу, я больше не могу ее найти, используя новое имя.

НО, если я использую старый - группа там. В свойствах он имеет новое имя как DiplayName, а также в outlook он отображается правильно, но этот метод FindGroupByName не может его найти. IsDirty равно false. кто-нибудь сталкивался с такой проблемой? есть ли какая-то задержка на серверах Outlook (я ждал довольно долго перед вторым звонком)? что может быть возможным решением? или, может быть, есть какие-то документы, которые могут помочь?

...