Compartilhar via


UpdateItemType Classe

Definição

A UpdateItemType classe representa uma solicitação para atualizar um conjunto de itens.

public ref class UpdateItemType : ExchangeWebServices::BaseRequestType
public class UpdateItemType : ExchangeWebServices.BaseRequestType
Public Class UpdateItemType
Inherits BaseRequestType
Herança
UpdateItemType

Exemplos

O exemplo de código a seguir mostra como atualizar uma reunião. Este procedimento realiza as seguintes ações:

  1. Adiciona um novo participante necessário à reunião.
  2. Atualizações a hora de início da reunião para o momento atual no cliente.
  3. Adiciona uma propriedade MAPI personalizada à reunião.
  4. Exclui todos os participantes opcionais.
  5. Resolve automaticamente quaisquer conflitos na operação de atualização.
  6. Envia a atualização da reunião para todos os participantes e salva uma cópia da solicitação de reunião atualizada na pasta que a SavedItemFolderId propriedade identifica.
static void UpdateItem(ExchangeServiceBinding esb)
{
    // Create calendar items to contain each non-deletion update.
    CalendarItemType ciAppendRA = new CalendarItemType();
    CalendarItemType ciSetStart = new CalendarItemType();
    CalendarItemType ciSetEP = new CalendarItemType();

    // Add a new required attendee to the calendar item.
    ciAppendRA.RequiredAttendees = new AttendeeType[1];
    ciAppendRA.RequiredAttendees[0] = new AttendeeType();
    ciAppendRA.RequiredAttendees[0].Mailbox = new EmailAddressType();
    ciAppendRA.RequiredAttendees[0].Mailbox.EmailAddress = "mskinner@example.com";
    // Identify the field to append.
    PathToUnindexedFieldType appReqAttendees = new PathToUnindexedFieldType();
    appReqAttendees.FieldURI = UnindexedFieldURIType.calendarRequiredAttendees;
    // Add the calendar item and the identified appended field to
    // the ItemChangeDescriptionType. This is an AppendToItemFieldType.
    AppendToItemFieldType append = new AppendToItemFieldType();
    append.Item = appReqAttendees;
    append.Item1 = ciAppendRA;

    // Set a new start time on a calendar item.
    ciSetStart.Start = DateTime.Now;
    ciSetStart.StartSpecified = true;
    // Identify the field to set.
    PathToUnindexedFieldType modStartTime = new PathToUnindexedFieldType();
    modStartTime.FieldURI = UnindexedFieldURIType.calendarStart;
    // Add the calendar item and the identified set field to
    // the ItemChangeDescriptionType. This is a SetItemFieldType.
    SetItemFieldType set = new SetItemFieldType();
    set.Item = modStartTime;
    set.Item1 = ciSetStart;

    // Set a custom property on a calendar item.
    PathToExtendedFieldType setMyProperty = new PathToExtendedFieldType();
    setMyProperty.DistinguishedPropertySetId = DistinguishedPropertySetType.PublicStrings;
    setMyProperty.DistinguishedPropertySetIdSpecified = true;
    setMyProperty.PropertyName = "Milestone date";
    setMyProperty.PropertyType = MapiPropertyTypeType.String;
    // Identify the custom property to set.
    ciSetEP.ExtendedProperty = new ExtendedPropertyType[1];
    ciSetEP.ExtendedProperty[0] = new ExtendedPropertyType();
    ciSetEP.ExtendedProperty[0].ExtendedFieldURI = setMyProperty;
    ciSetEP.ExtendedProperty[0].Item = "2007-07-18";
    // Add the calendar item and the identified custom property
    // to the ItemChangeDescriptionType. This is an SetItemFieldType.
    SetItemFieldType setCustomProp = new SetItemFieldType();
    setCustomProp.Item = setMyProperty;
    setCustomProp.Item1 = ciSetEP;

    // Delete optional attendees from the calendar item.
    PathToUnindexedFieldType delOptAttendees = new PathToUnindexedFieldType();
    delOptAttendees.FieldURI = UnindexedFieldURIType.calendarOptionalAttendees;
    // Add the property to delete to the ItemChangeDescriptionType.
    DeleteItemFieldType deletion = new DeleteItemFieldType();
    deletion.Item = delOptAttendees;            

    // Create the identifier of the item to update.
    ItemIdType itemId = new ItemIdType();
    itemId.Id = "AAAlAE1BQG";
    itemId.ChangeKey = "DwAAABYAAA";

    // Create and populate the request.
    UpdateItemType <span class="label">request</span> = new <span class="label">UpdateItemType</span>();
<span class="label">request</span>.ItemChanges = new ItemChangeType[1] { new ItemChangeType() };
<span class="label">request</span>.ItemChanges[0].Item = itemId;
<span class="label">request</span>.ItemChanges[0].Updates = new ItemChangeDescriptionType[4];
<span class="label">request</span>.ItemChanges[0].Updates[0] = append;
<span class="label">request</span>.ItemChanges[0].Updates[1] = set;
<span class="label">request</span>.ItemChanges[0].Updates[2] = deletion;
<span class="label">request</span>.ItemChanges[0].Updates[3] = setCustomProp;

<span class="label">request</span>.ConflictResolution = ConflictResolutionType.AutoResolve;
<span class="label">request</span>.SendMeetingInvitationsOrCancellations = CalendarItemUpdateOperationType.SendToAllAndSaveCopy;
<span class="label">request</span>.SendMeetingInvitationsOrCancellationsSpecified = true;

    // Send the update request and receive the response.
    UpdateItemResponseType response = esb.UpdateItem(<span class="label">request</span>);
    ArrayOfResponseMessagesType aormt = response.ResponseMessages;
    ResponseMessageType[] rmta = aormt.Items;

    foreach (ResponseMessageType rmt in rmta)
    {
        ItemInfoResponseMessageType respMsg = (rmt as ItemInfoResponseMessageType);
        foreach (ItemType item in respMsg.Items.Items)
        {
            Console.WriteLine("Item ID: " + item.ItemId.Id);
            Console.WriteLine("New change key: " + item.ItemId.ChangeKey);
            Console.ReadLine();
        }
    }
}

Observação: o identificador de item e a chave de alteração na solicitação foram encurtados para preservar a legibilidade.

Comentários

Você pode acrescentar, definir ou excluir propriedades ao atualizar um item.

Se você tentar enviar uma descrição de alteração que inclua mais de uma propriedade a ser modificada, um ErrorIncorrectUpdatePropertyCount erro será retornado.

Construtores

UpdateItemType()

O UpdateItemType construtor inicializa uma nova instância da UpdateItemType classe.

Propriedades

ConflictResolution

A ConflictResolution propriedade obtém ou define um valor de enumeração que representa o tipo de resolução de conflito que é executada durante uma atualização. Esta propriedade é obrigatória. Esta é uma propriedade de leitura/gravação.

ItemChanges

A ItemChanges propriedade obtém ou define uma matriz de alterações de item. Esta propriedade é obrigatória. Esta é uma propriedade de leitura/gravação.

MessageDisposition

A MessageDisposition propriedade obtém ou define um valor de enumeração que descreve como um item de mensagem é tratado após a atualização. Essa propriedade é necessária para itens de mensagem, incluindo mensagens de reunião, como cancelamentos de reunião, solicitações de reunião e respostas de reunião. Esta é uma propriedade de leitura/gravação.

MessageDispositionSpecified

A MessageDispositionSpecified propriedade obtém ou define um valor booliano que especifica se a MessageDisposition propriedade é serializada na solicitação SOAP (Simple Object Access Protocol). Essa propriedade será necessária se a MessageDisposition propriedade estiver definida. Esta é uma propriedade de leitura/gravação.

SavedItemFolderId

A SavedItemFolderId propriedade obtém ou define a pasta de destino para itens salvos. Essa propriedade é definida com um FolderIdType objeto ou DistinguishedFolderIdType . Essa propriedade é opcional. Esta é uma propriedade de leitura/gravação.

SendMeetingInvitationsOrCancellations

A SendMeetingInvitationsOrCancellations propriedade obtém ou define um valor de enumeração que descreve como um item de calendário é tratado após a atualização. Essa propriedade é necessária para itens de calendário. Esta é uma propriedade de leitura/gravação.

SendMeetingInvitationsOrCancellationsSpecified

A SendMeetingInvitationsOrCancellationsSpecified propriedade obtém ou define um valor booliano que especifica se a SendMeetingInvitationsOrCancellations propriedade é serializada na solicitação SOAP (Simple Object Access Protocol). Essa propriedade será necessária se a SendMeetingInvitationsOrCancellations propriedade estiver definida. Esta é uma propriedade de leitura/gravação.

Aplica-se a