Для чего используется UCMeetingSetting ExtendedPropertyDefinition - PullRequest
0 голосов
/ 26 февраля 2019

У меня была проблема с обновлением собрания с использованием API обмена C #.Следующий код вызывает ошибку:

Microsoft.Exchange.WebServices.Data.ServiceResponseException: «Произошла внутренняя ошибка сервера. Операция не выполнена., Свойство: [{00020329-0000-0000-c000-000000000046}:'UCMeetingSetting'] UCMeetingSetting, PropertyErrorCode: NotFound, PropertyErrorDescription:. "

Код:

    public Appointment UpdateAppointment(ExchangeCredentials credentials, Appointment appointment)
    {
        var service = CreateMsExchangeService(credentials);

        if (service == null)
        {
            return null;
        }

        try
        {
            var invitation = MsAppointment.Bind(service, new ItemId(appointment.Id), GetAppointmentPropertySet());

            SetMsAppointmentProperties(invitation, appointment);

            //ExtendedPropertyDefinition extendedUCMeetingSetting = new ExtendedPropertyDefinition(
            //    new Guid("{00020329-0000-0000-C000-000000000046}"), "UCMeetingSetting", MapiPropertyType.String);

            //invitation.SetExtendedProperty(extendedUCMeetingSetting, "Lala");

            invitation.Update(ConflictResolutionMode.AutoResolve);

            return appointment;
        }
        catch (Exception exception)
        {
            _logger.LogError(exception, $"Error occured while updating appointment {appointment.Subject.TraceFormat()} for {credentials.Username}");
        }

        return null;
    }

Проблема устранена путем добавления отсутствующего свойства, но я не смог выяснить, чтов значение этого расширенного свойства:

    public Appointment UpdateAppointment(ExchangeCredentials credentials, Appointment appointment)
    {
        var service = CreateMsExchangeService(credentials);

        if (service == null)
        {
            return null;
        }

        try
        {
            var invitation = MsAppointment.Bind(service, new ItemId(appointment.Id), GetAppointmentPropertySet());

            SetMsAppointmentProperties(invitation, appointment);

            ExtendedPropertyDefinition extendedUCMeetingSetting = new ExtendedPropertyDefinition(
                new Guid("{00020329-0000-0000-C000-000000000046}"), "UCMeetingSetting", MapiPropertyType.String);

            invitation.SetExtendedProperty(extendedUCMeetingSetting, "Lala");

            invitation.Update(ConflictResolutionMode.AutoResolve);

            return appointment;
        }
        catch (Exception exception)
        {
            _logger.LogError(exception, $"Error occured while updating appointment {appointment.Subject.TraceFormat()} for {credentials.Username}");
        }

        return null;
    }

Мои вопросы:

Почему требуется это расширенное свойство, когда я могу добавить в стоимость мусор?

Какдолжно ли значение выглядеть правильно или как оно?

Спасибо

Лотар

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...