UNPKG

@jaricardodev/ews-javascript-api

Version:
123 lines (114 loc) 5.52 kB
import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; import {EwsUtilities} from "../Core/EwsUtilities"; import {ExchangeService} from "../Core/ExchangeService"; import {LobbyBypass} from "../Enumerations/LobbyBypass"; import {OnlineMeetingAccessLevel} from "../Enumerations/OnlineMeetingAccessLevel"; import {Presenters} from "../Enumerations/Presenters"; import {XmlElementNames} from "../Core/XmlElementNames"; import {XmlNamespace} from "../Enumerations/XmlNamespace"; import {ComplexProperty} from "./ComplexProperty"; /** * Represents Lync online meeting settings. */ export class OnlineMeetingSettings extends ComplexProperty { private lobbyBypass: LobbyBypass = LobbyBypass.Disabled; private accessLevel: OnlineMeetingAccessLevel = OnlineMeetingAccessLevel.Locked; private presenters: Presenters = Presenters.Disabled; /** * Gets or sets the online meeting setting that describes whether users dialing in by phone have to wait in the lobby. */ get LobbyBypass(): LobbyBypass { return this.lobbyBypass; } set LobbyBypass(value: LobbyBypass) { this.SetFieldValue<LobbyBypass>({ getValue: () => this.lobbyBypass, setValue: (fieldValue) => { this.LobbyBypass = fieldValue } }, value); } /** * Gets or sets the online meeting setting that describes access permission to the meeting. */ get AccessLevel(): OnlineMeetingAccessLevel { return this.accessLevel; } set AccessLevel(value: OnlineMeetingAccessLevel) { this.SetFieldValue<OnlineMeetingAccessLevel>({ getValue: () => this.accessLevel, setValue: (fieldValue) => { this.accessLevel = fieldValue } }, value); } /** * Gets or sets the online meeting setting that defines the meeting leaders. */ get Presenters(): Presenters { return this.presenters; } set Presenters(value: Presenters) { this.SetFieldValue<Presenters>({ getValue: () => this.presenters, setValue: (fieldValue) => { this.presenters = fieldValue } }, value); } /** * Initializes a new instance of the **OnlineMeetingSettings** class. */ constructor(); /** * @internal Initializes a new instance of the **OnlineMeetingSettings** class from another OnlineMeetingSettings instance. * * @param {OnlineMeetingSettings} onlineMeetingSettings OnlineMeetingSettings instance to copy. */ constructor(onlineMeetingSettings: OnlineMeetingSettings); /** * @internal Initializes a new instance of the **OnlineMeetingSettings** class. * * @param {LobbyBypass} lobbyBypass The address used to initialize the OnlineMeetingSettings. * @param {OnlineMeetingAccessLevel} accessLevel The routing type used to initialize the OnlineMeetingSettings. * @param {Presenters} presenters Mailbox type of the participant. */ constructor(lobbyBypass: LobbyBypass, accessLevel: OnlineMeetingAccessLevel, presenters: Presenters); constructor(lobbyBypassOrOnlineMeetingSettings?: LobbyBypass | OnlineMeetingSettings, accessLevel?: OnlineMeetingAccessLevel, presenters?: Presenters) { super(); switch (arguments.length) { case 1: let onlineMeetingSettings = <OnlineMeetingSettings>lobbyBypassOrOnlineMeetingSettings; EwsUtilities.ValidateParam(lobbyBypassOrOnlineMeetingSettings, "OnlineMeetingSettings"); this.LobbyBypass = onlineMeetingSettings.LobbyBypass; this.AccessLevel = onlineMeetingSettings.AccessLevel; this.Presenters = onlineMeetingSettings.Presenters; break; case 3: this.lobbyBypass = <LobbyBypass>lobbyBypassOrOnlineMeetingSettings; this.accessLevel = accessLevel; this.presenters = presenters; break; default: break; } } /** * @internal Loads service object from XML. * * @param {any} jsObject Json Object converted from XML. * @param {ExchangeService} service The service. */ LoadFromXmlJsObject(jsObject: any, service: ExchangeService): void { for (let key in jsObject) { switch (key) { case XmlElementNames.LobbyBypass: this.lobbyBypass = LobbyBypass[<string>jsObject[key]]; break; case XmlElementNames.AccessLevel: this.accessLevel = OnlineMeetingAccessLevel[<string>jsObject[key]]; break; case XmlElementNames.Presenters: this.presenters = Presenters[<string>jsObject[key]]; break; default: break; } } } /** * @internal Writes elements to XML. * * @param {EwsServiceXmlWriter} writer The writer. */ WriteElementsToXml(writer: EwsServiceXmlWriter): void { writer.WriteElementValue(XmlNamespace.Types, XmlElementNames.LobbyBypass, this.LobbyBypass); writer.WriteElementValue(XmlNamespace.Types, XmlElementNames.AccessLevel, this.AccessLevel); writer.WriteElementValue(XmlNamespace.Types, XmlElementNames.Presenters, this.Presenters); } }