Реализация группы Outlook 2010 с помощью диалога с использованием EWS и Exchange 2007

Мы используем EWS для генерации аналитики в некоторых наших почтовых ящиках.

Частично это получение количества / имени / начала / конца разговоров. Разговор аналогичен тому, как Outlook 2010 показывает их при группировании по разговору.

Я надеялся, что смогу использовать ConversationId для группировки элементов, но, похоже, это функция только для Exchange 2010.

Я могу группировать по темам в папке, чтобы получить простое представление о потоках ... однако это не обрабатывает разделенные разговоры, как это делает Outlook 2010 - в частности, он не обрабатывает ввод ответов, которые есть в отправленных элементах (эти важны для нас - мы не можем получить хорошие показатели, не глядя также на ответы).

Мой текущий код для получения информации о потоке выглядит так:

private IEnumerable<EmailThread> GetThreads(Folder folder)
    {
        var view = new ItemView(int.MaxValue) {PropertySet = new PropertySet(BasePropertySet.IdOnly)};

        // view.PropertySet.Add(ItemSchema.ConversationId); - Can't use this as we're stuck on Exchange 2007 !!!
        view.PropertySet.Add(ItemSchema.Subject);
        view.PropertySet.Add(ItemSchema.DateTimeReceived);

        var grouping = new Grouping(ItemSchema.Subject, SortDirection.Descending, ItemSchema.DateTimeReceived, AggregateType.Maximum);
        var groupResults = folder.FindItems(view, grouping);


        return groupResults.Select(x => new EmailThread
        {
            Name = x.Items.First().Subject,
            Items =  x.Items.Count,
            StartDate = x.Items.Last().DateTimeReceived, // Assume last in thread is first email
            EndDate = x.Items.First().DateTimeReceived // Assume first in thread is most recent
        });
    }

Я надеюсь, что кто-то знает изящный способ эффективно получать информацию об ответах, которые составляют часть разговора?

Ответы на вопрос(1)

Ваш ответ на вопрос