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.
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
Exemplos
O exemplo de código a seguir mostra como atualizar uma reunião. Este procedimento realiza as seguintes ações:
- Adiciona um novo participante necessário à reunião.
- Atualizações a hora de início da reunião para o momento atual no cliente.
- Adiciona uma propriedade MAPI personalizada à reunião.
- Exclui todos os participantes opcionais.
- Resolve automaticamente quaisquer conflitos na operação de atualização.
- 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. |