UpdateItemType Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
O 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
Exemplos
o exemplo de código a seguir mostra como atualizar uma reunião. Este exemplo executa as seguintes ações:
- adiciona um novo participante necessário para a reunião.
- Atualiza a hora de início da reunião para a hora atual no cliente.
- Adiciona uma propriedade MAPI personalizada para a reunião.
- Exclui todos os participantes opcionais.
- Automaticamente resolve conflitos na operação de atualização.
- Envia a atualização de reunião para todos os participantes e salva uma cópia da solicitação de reunião atualizadas na pasta que o 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 item identificador e alterar a chave na solicitação ter sido reduzido para preservar a legibilidade.
Comentários
Você pode acrescentar, definir ou excluir propriedades quando você atualiza um item.
Se você tentar enviar uma descrição de alteração que inclui mais de uma propriedade para modificar, uma ErrorIncorrectUpdatePropertyCount erro será retornado.
Construtores
| UpdateItemType() |
O UpdateItemType construtor inicializa uma nova instância do UpdateItemType classe. |
Propriedades
| ConflictResolution |
O 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. Essa propriedade é obrigatória. Esta é uma propriedade de leitura/gravação. |
| ItemChanges |
O ItemChanges propriedade obtém ou define uma matriz de alterações de item. Essa propriedade é obrigatória. Esta é uma propriedade de leitura/gravação. |
| MessageDisposition |
O MessageDisposition propriedade obtém ou define um valor de enumeração que descreve como um item de mensagem é manipulado após ele ser atualizado. Essa propriedade é obrigató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 |
O MessageDispositionSpecified propriedade obtém ou define um valor Boolean que especifica se o MessageDisposition propriedade é serializada na solicitação simples (SOAP Object Access Protocol). Essa propriedade é obrigatória se a MessageDisposition propriedade estiver definida. Esta é uma propriedade de leitura/gravação. |
| SavedItemFolderId |
O SavedItemFolderId propriedade obtém ou define a pasta de destino para itens salvos. Essa propriedade for definida com qualquer um um FolderIdType ou DistinguishedFolderIdType objeto. Essa propriedade é opcional. Esta é uma propriedade de leitura/gravação. |
| SendMeetingInvitationsOrCancellations |
O SendMeetingInvitationsOrCancellations propriedade obtém ou define um valor de enumeração que descreve como um item de calendário é tratado após ele ser atualizado. Essa propriedade é obrigatória para itens de calendário. Esta é uma propriedade de leitura/gravação. |
| SendMeetingInvitationsOrCancellationsSpecified |
O SendMeetingInvitationsOrCancellationsSpecified propriedade obtém ou define um valor Boolean que especifica se o SendMeetingInvitationsOrCancellations propriedade é serializada na solicitação simples (SOAP Object Access Protocol). Essa propriedade é obrigatória se a SendMeetingInvitationsOrCancellations propriedade estiver definida. Esta é uma propriedade de leitura/gravação. |