public void MSOXWSCORE_S07_TC16_GetTaskItemWithTwoItemIdTypesSuccessfully()
{
#region Step 1: Create a recurring task item.
// Define the pattern and range of the recurring task item.
DailyRecurrencePatternType pattern = new DailyRecurrencePatternType();
pattern.Interval = 1;
NumberedRecurrenceRangeType range = new NumberedRecurrenceRangeType();
int numberOfOccurrences = 5;
range.NumberOfOccurrences = numberOfOccurrences;
System.DateTime start = System.DateTime.Now;
range.StartDate = start;
// Define the TaskType item.
TaskType[] items = new TaskType[] { new TaskType() };
items[0].Subject = Common.GenerateResourceName(
this.Site,
TestSuiteHelper.SubjectForCreateItem);
items[0].Recurrence = new TaskRecurrenceType();
items[0].Recurrence.Item = pattern;
items[0].Recurrence.Item1 = range;
// Call CreateItem operation.
CreateItemResponseType createItemResponse = this.CallCreateItemOperation(DistinguishedFolderIdNameType.tasks, items);
// Check the operation response.
Common.CheckOperationSuccess(createItemResponse, 1, this.Site);
BaseItemIdType[] createdTaskItemIds = Common.GetItemIdsFromInfoResponse(createItemResponse);
// One created task item should be returned.
Site.Assert.AreEqual<int>(
1,
createdTaskItemIds.GetLength(0),
"One created task item should be returned! Expected Item Count: {0}, Actual Item Count: {1}",
1,
createdTaskItemIds.GetLength(0));
#endregion
#region Step 2: Get the recurring task item by ItemIdType.
// Call GetItem operation using the created task item ID.
GetItemResponseType getItemResponse = this.CallGetItemOperation(createdTaskItemIds);
// Check the operation response.
Common.CheckOperationSuccess(getItemResponse, 1, this.Site);
#endregion
// Exchange 2007 and Exchange 2010 do not support the RecurringMasterItemIdRanges element.
SutVersion currentSutVersion = (SutVersion)Enum.Parse(typeof(SutVersion), Common.GetConfigurationPropertyValue("SutVersion", this.Site));
if (currentSutVersion.Equals(SutVersion.ExchangeServer2013))
{
#region Step 3: Get the recurring task item by RecurringMasterItemIdRangesType.
// Define the RecurringMasterItemIdRanges using the created task item ID.
RecurringMasterItemIdRangesType[] recurringMasterItemIdRanges = new RecurringMasterItemIdRangesType[1];
recurringMasterItemIdRanges[0] = new RecurringMasterItemIdRangesType();
recurringMasterItemIdRanges[0].Id = (createdTaskItemIds[0] as ItemIdType).Id;
recurringMasterItemIdRanges[0].ChangeKey = (createdTaskItemIds[0] as ItemIdType).ChangeKey;
recurringMasterItemIdRanges[0].Ranges = new OccurrencesRangeType[1];
recurringMasterItemIdRanges[0].Ranges[0] = new OccurrencesRangeType();
recurringMasterItemIdRanges[0].Ranges[0].CompareOriginalStartTimeSpecified = true;
recurringMasterItemIdRanges[0].Ranges[0].CompareOriginalStartTime = true;
recurringMasterItemIdRanges[0].Ranges[0].StartSpecified = true;
recurringMasterItemIdRanges[0].Ranges[0].Start = start;
recurringMasterItemIdRanges[0].Ranges[0].EndSpecified = true;
recurringMasterItemIdRanges[0].Ranges[0].End = start.AddDays(numberOfOccurrences);
// Call GetItem operation using the recurringMasterItemIdRanges.
getItemResponse = this.CallGetItemOperation(recurringMasterItemIdRanges);
// Check the operation response.
Common.CheckOperationSuccess(getItemResponse, 1, this.Site);
#endregion
}
}