public void MSOXWSCORE_S05_TC18_DeleteMeetingItemWithThreeItemIdTypesSuccessfully()
{
#region Step 1: Create and get a recurring calendar item.
DateTime start = DateTime.Now;
int numberOfOccurrences = 5;
CalendarItemType calendar = this.CreateAndGetRecurringCalendarItem(start, numberOfOccurrences);
#endregion
#region Step 2: Delete the recurring calendar item by ItemIdType.
DeleteItemResponseType deleteItemResponse = this.CallDeleteItemOperation();
// Check the operation response.
Common.CheckOperationSuccess(deleteItemResponse, 1, this.Site);
// Clear ExistItemIds for DeleteItem.
this.InitializeCollection();
#endregion
#region Step 3: Create and get a recurring calendar item.
calendar = this.CreateAndGetRecurringCalendarItem(start, numberOfOccurrences);
#endregion
#region Step 4: Delete the recurrence master calendar item by RecurringMasterItemIdType.
DeleteItemType deleteItemRequest = new DeleteItemType();
// The calendar item to delete.
RecurringMasterItemIdType[] recurringMasterItemIds = new RecurringMasterItemIdType[1];
recurringMasterItemIds[0] = new RecurringMasterItemIdType();
recurringMasterItemIds[0].OccurrenceId = calendar.FirstOccurrence.ItemId.Id;
recurringMasterItemIds[0].ChangeKey = calendar.FirstOccurrence.ItemId.ChangeKey;
deleteItemRequest.ItemIds = recurringMasterItemIds;
// Enumeration value to describe how an item is to be deleted.
deleteItemRequest.DeleteType = DisposalType.HardDelete;
// AffectedTaskOccurrences indicates whether a task instance or a task master is to be deleted.
deleteItemRequest.AffectedTaskOccurrencesSpecified = true;
deleteItemRequest.AffectedTaskOccurrences = AffectedTaskOccurrencesType.AllOccurrences;
// SendMeetingCancellations describes how cancellations are to be handled for deleted meetings.
deleteItemRequest.SendMeetingCancellationsSpecified = true;
deleteItemRequest.SendMeetingCancellations = CalendarItemCreateOrDeleteOperationType.SendToNone;
deleteItemResponse = this.COREAdapter.DeleteItem(deleteItemRequest);
// Check the operation response.
Common.CheckOperationSuccess(deleteItemResponse, 1, this.Site);
// Clear ExistItemIds for DeleteItem.
this.InitializeCollection();
#endregion
#region Step 5: Create and get a recurring calendar item.
calendar = this.CreateAndGetRecurringCalendarItem(start, numberOfOccurrences);
#endregion
#region Step 6: Delete the first occurrence of the recurring calendar item by OccurrenceItemIdType.
deleteItemRequest = new DeleteItemType();
// The calendar item to delete.
OccurrenceItemIdType[] occurrenceItemIds = new OccurrenceItemIdType[1];
occurrenceItemIds[0] = new OccurrenceItemIdType();
occurrenceItemIds[0].RecurringMasterId = calendar.ItemId.Id;
occurrenceItemIds[0].ChangeKey = calendar.FirstOccurrence.ItemId.ChangeKey;
occurrenceItemIds[0].InstanceIndex = 1;
deleteItemRequest.ItemIds = occurrenceItemIds;
// Enumeration value to describe how an item is to be deleted.
deleteItemRequest.DeleteType = DisposalType.HardDelete;
// AffectedTaskOccurrences indicates whether a task instance or a task master is to be deleted.
deleteItemRequest.AffectedTaskOccurrencesSpecified = true;
deleteItemRequest.AffectedTaskOccurrences = AffectedTaskOccurrencesType.AllOccurrences;
// SendMeetingCancellations describes how cancellations are to be handled for deleted meetings.
deleteItemRequest.SendMeetingCancellationsSpecified = true;
deleteItemRequest.SendMeetingCancellations = CalendarItemCreateOrDeleteOperationType.SendToNone;
deleteItemResponse = this.COREAdapter.DeleteItem(deleteItemRequest);
// Check the operation response.
Common.CheckOperationSuccess(deleteItemResponse, 1, this.Site);
#endregion
}