JsonObject
propertySet, service, destinationList
System.Collections.Generic.IList
{ throw new Error("FindItemResponse.ts - InternalReadItemsFromJson : Not implemented."); };
FindItemResponse.prototype.InternalReadItemsFromXmlJsObject = function (jsonObject, propertySet, service, destinationList
System.Collections.Generic.IList
{
EwsLogging_1.EwsLogging.Assert(destinationList != null, "FindItemResponse.InternalReadItemsFromJson", "destinationList is null.");
if (jsonObject[XmlElementNames_1.XmlElementNames.Items]) {
var items = EwsServiceJsonReader_1.EwsServiceJsonReader.ReadServiceObjectsCollectionFromJson(jsonObject, service, XmlElementNames_1.XmlElementNames.Items, this.CreateItemInstance, true, this.propertySet, true);
summaryPropertiesOnly
items.forEach(function (item, index) { destinationList.push(item); });
}
};
FindItemResponse.prototype.ReadElementsFromJson = function (responseObject
JsonObject
service) { throw new Error("FindItemResponse.ts - ReadElementsFromJson : Not implemented."); };
FindItemResponse.prototype.ReadElementsFromXmlJsObject = function (responseObject, service) {
_super.prototype.ReadElementsFromXmlJsObject.call(this, responseObject, service);
var rootFolder = responseObject[XmlElementNames_1.XmlElementNames.RootFolder];
var totalItemsInView = Number(rootFolder[XmlAttributeNames_1.XmlAttributeNames.TotalItemsInView]);
var moreItemsAvailable = !ExtensionMethods_1.Convert.toBool(rootFolder[XmlAttributeNames_1.XmlAttributeNames.IncludesLastItemInRange]);
// Ignore IndexedPagingOffset attribute if moreItemsAvailable is false.
var nextPageOffset = null;
if (moreItemsAvailable) {
if (rootFolder[XmlAttributeNames_1.XmlAttributeNames.IndexedPagingOffset]) {
nextPageOffset = Number(rootFolder[XmlAttributeNames_1.XmlAttributeNames.IndexedPagingOffset]);
}
}
if (!this.isGrouped) {
this.results = new FindItemsResults_1.FindItemsResults();
this.results.TotalCount = totalItemsInView;
this.results.NextPageOffset = nextPageOffset;
this.results.MoreAvailable = moreItemsAvailable;
this.InternalReadItemsFromXmlJsObject(rootFolder, this.propertySet, service, this.results.Items);
}
else {
this.groupedFindResults = new GroupedFindItemsResults_1.GroupedFindItemsResults();
this.groupedFindResults.TotalCount = totalItemsInView;
this.groupedFindResults.NextPageOffset = nextPageOffset;
this.groupedFindResults.MoreAvailable = moreItemsAvailable;
if (rootFolder[XmlElementNames_1.XmlElementNames.Groups]) {
var jsGroups = EwsServiceJsonReader_1.EwsServiceJsonReader.ReadAsArray(rootFolder, XmlElementNames_1.XmlElementNames.Groups);
for (var _i = 0; _i < jsGroups.length; _i++) {
var jsGroup = jsGroups[_i];
if (jsGroup[XmlElementNames_1.XmlElementNames.GroupedItems]) {
var jsGroupedItemCollection = EwsServiceJsonReader_1.EwsServiceJsonReader.ReadAsArray(jsGroup, XmlElementNames_1.XmlElementNames.GroupedItems);
for (var _a = 0; _a < jsGroupedItemCollection.length; _a++) {
var jsGroupedItem = jsGroupedItemCollection[_a];
var groupIndex = jsGroupedItem[XmlElementNames_1.XmlElementNames.GroupIndex];
var itemList = []; // new List<TItem>();
this.InternalReadItemsFromXmlJsObject(jsGroupedItem, this.propertySet, service, itemList);
this.groupedFindResults.ItemGroups.push(new ItemGroup_1.ItemGroup(groupIndex, itemList));
}
}
}
}
}
//debug: //ref: need to find example.
//todo: check highlight terms and grouping.
if (responseObject[XmlElementNames_1.XmlElementNames.HighlightTerms]) {
var highlightTermElements = EwsServiceJsonReader_1.EwsServiceJsonReader.ReadAsArray(responseObject, XmlElementNames_1.XmlElementNames.HighlightTerms);
for (var _b = 0; _b < highlightTermElements.length; _b++) {
var highlightTermElement = highlightTermElements[_b];
if (highlightTermElement[XmlElementNames_1.XmlElementNames.HighlightTerm]) {
var highlightTermObjects = EwsServiceJsonReader_1.EwsServiceJsonReader.ReadAsArray(highlightTermElement, XmlElementNames_1.XmlElementNames.HighlightTerm);
for (var _c = 0; _c < highlightTermObjects.length; _c++) {
var jsonHighlightTerm = highlightTermObjects[_c];
var term = new HighlightTerm_1.HighlightTerm();
term.LoadFromJson(jsonHighlightTerm, service);
this.results.HighlightTerms.push(term);
}
}
}
}
};
return FindItemResponse;
})(ServiceResponse_1.ServiceResponse);
exports.FindItemResponse = FindItemResponse;