UNPKG

@jaricardodev/ews-javascript-api

Version:
72 lines (58 loc) 2.37 kB
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; } }