UNPKG

@jaricardodev/ews-javascript-api

Version:
101 lines (86 loc) 3.9 kB
import {Conversation} from "../ServiceObjects/Items/Conversation"; import {Convert} from "../../ExtensionMethods"; import {EwsLogging} from "../EwsLogging"; import {EwsServiceJsonReader} from "../EwsServiceJsonReader"; import {ExchangeService} from "../ExchangeService"; import {FindConversationResults} from "../../Search/FindConversationResults"; import {HighlightTerm} from "../../ComplexProperties/HighlightTerm"; import {ItemInfo} from "../ServiceObjects/Items/ItemInfo"; import {XmlElementNames} from "../XmlElementNames"; import {ServiceResponse} from "./ServiceResponse"; /** * @internal Represents the response to a Conversation search operation. * * @sealed */ export class FindConversationResponse extends ServiceResponse { /** * @internal Gets FindConversation results. * * @private set() * * @returns FindConversation results. * */ Results: FindConversationResults; /** * @internal Gets the collection of conversations in results. */ get Conversations(): Conversation[] { return this.Results.Conversations; } /** * @internal Initializes a new instance of the **FindConversationResponse** class. */ constructor() { super(); this.Results = new FindConversationResults(); } /** * @internal Reads response elements from Xml JsObject. * * @param {any} jsObject The response object. * @param {ExchangeService} service The service. */ ReadElementsFromXmlJsObject(responseObject: any, service: ExchangeService): void { EwsLogging.Assert( this.Results.Conversations != null, "FindConversationResponse.ReadElementsFromXml", "conversations is null."); EwsLogging.Assert( this.Results.HighlightTerms != null, "FindConversationResponse.ReadElementsFromXml", "highlightTerms is null."); if (responseObject[XmlElementNames.Conversations]) { for (let conversationObject of EwsServiceJsonReader.ReadAsArray(responseObject[XmlElementNames.Conversations], XmlElementNames.Conversation)) { let jsonConversation: any = conversationObject;// as JsonObject; let item: Conversation = (new ItemInfo()).CreateEwsObjectFromXmlElementName<Conversation>(service, XmlElementNames.Conversation); if (item != null) { item.LoadFromXmlJsObject( jsonConversation, service, true, null, false); this.Conversations.push(item); } } } if (responseObject[XmlElementNames.HighlightTerms]) { let highlightTermObjects: any[] = EwsServiceJsonReader.ReadAsArray(responseObject[XmlElementNames.HighlightTerms], XmlElementNames.HighlightTerm); if (highlightTermObjects != null) { for (let highlightTermObject of highlightTermObjects) { let jsonHighlightTerm: any = highlightTermObject;// as JsonObject; let term: HighlightTerm = new HighlightTerm(); term.LoadFromXmlJsObject(jsonHighlightTerm, service); this.Results.HighlightTerms.push(term); } } } if (responseObject[XmlElementNames.TotalConversationsInView]) { this.Results.TotalCount = Convert.toNumber(responseObject[XmlElementNames.TotalConversationsInView]); } if (responseObject[XmlElementNames.IndexedOffset]) { this.Results.IndexedOffset = Convert.toNumber(responseObject[XmlElementNames.IndexedOffset]); } } }