@jaricardodev/ews-javascript-api
Version:
EWS Managed api in JavaScript
123 lines (114 loc) • 5.52 kB
text/typescript
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);
}
}