@jaricardodev/ews-javascript-api
Version:
EWS Managed api in JavaScript
72 lines (58 loc) • 2.37 kB
text/typescript
import { EwsServiceJsonReader } from '../Core/EwsServiceJsonReader';
import { ExchangeService } from '../Core/ExchangeService';
import { HoldStatus } from "../Enumerations/HoldStatus";
import { MailboxHoldStatus } from "./MailboxHoldStatus";
import { XmlElementNames } from "../Core/XmlElementNames";
/**
* Represents mailbox hold result
*
* @sealed
*/
export class MailboxHoldResult {
/**
* Hold id
*/
HoldId: string = null;
/**
* Query
*/
Query: string = null;
/**
* Collection of mailbox status
*/
Statuses: MailboxHoldStatus[] = null;
/**
* @internal Loads service object from XML.
*
* @param {any} jsObject Json Object converted from XML.
* @param {ExchangeService} service The service.
* @return {MailboxHoldResult} Mailbox hold object
*/
static LoadFromXmlJsObject(jsObject: any, service: ExchangeService): MailboxHoldResult {
let statuses: MailboxHoldStatus[] = [];
let holdResult: MailboxHoldResult = new MailboxHoldResult();
if (jsObject[XmlElementNames.HoldId]) {
holdResult.HoldId = jsObject[XmlElementNames.HoldId];
}
if (jsObject[XmlElementNames.Query]) {
holdResult.Query = jsObject[XmlElementNames.Query];
}
if (jsObject[XmlElementNames.MailboxHoldStatuses]) {
for (let statusObject of EwsServiceJsonReader.ReadAsArray(jsObject[XmlElementNames.MailboxHoldStatuses], XmlElementNames.MailboxHoldStatus)) {
let status: MailboxHoldStatus = new MailboxHoldStatus();
if (statusObject[XmlElementNames.Mailbox]) {
status.Mailbox = statusObject[XmlElementNames.Mailbox];
}
if (statusObject[XmlElementNames.Status]) {
status.Status = HoldStatus[<string>statusObject[XmlElementNames.Status]];
}
if (statusObject[XmlElementNames.AdditionalInfo]) {
status.AdditionalInfo = statusObject[XmlElementNames.AdditionalInfo];
}
statuses.push(status);
}
}
holdResult.Statuses = statuses.length == 0 ? null : statuses;
return holdResult;
}
}