@jaricardodev/ews-javascript-api
Version:
EWS Managed api in JavaScript
135 lines (120 loc) • 4.23 kB
text/typescript
import {Convert} from "../ExtensionMethods";
import {ElcFolderType} from "../Enumerations/ElcFolderType";
import {ExchangeService} from "../Core/ExchangeService";
import {Guid} from "../Guid";
import {RetentionActionType} from "../Enumerations/RetentionActionType";
import {XmlElementNames} from "../Core/XmlElementNames";
/**
* Represents retention policy tag object.
*
* @sealed
*/
export class RetentionPolicyTag {
/**
* Retention policy tag display name.
*/
DisplayName: string = null;
/**
* Retention Id.
*/
RetentionId: Guid = null;
/**
* Retention period in time span.
*/
RetentionPeriod: number = 0;
/**
* Retention type.
*/
Type: ElcFolderType = ElcFolderType.Calendar;
/**
* Retention action.
*/
RetentionAction: RetentionActionType = RetentionActionType.None;
/**
* Retention policy tag description.
*/
Description: string = null;
/**
* Is this a visible tag?
*/
IsVisible: boolean = false;
/**
* Is this a opted into tag?
*/
OptedInto: boolean = false;
/**
* Is this an archive tag?
*/
IsArchive: boolean = false;
/**
* Constructor
*/
constructor();
/**
* Constructor for retention policy tag.
*
* @param {string} displayName Display name.
* @param {Guid} retentionId Retention id.
* @param {number} retentionPeriod Retention period.
* @param {ElcFolderType} type Retention folder type.
* @param {RetentionActionType} retentionAction Retention action.
* @param {boolean} isVisible Is visible.
* @param {boolean} optedInto Opted into.
* @param {boolean} isArchive Is archive tag.
*/
constructor(displayName: string, retentionId: Guid, retentionPeriod: number, type: ElcFolderType, retentionAction: RetentionActionType, isVisible: boolean, optedInto: boolean, isArchive: boolean);
constructor(displayName?: string, retentionId?: Guid, retentionPeriod?: number, type?: ElcFolderType, retentionAction?: RetentionActionType, isVisible?: boolean, optedInto?: boolean, isArchive?: boolean) {
if (arguments.length > 0) {
this.DisplayName = displayName;
this.RetentionId = retentionId;
this.RetentionPeriod = retentionPeriod;
this.Type = type;
this.RetentionAction = retentionAction;
this.IsVisible = isVisible;
this.OptedInto = optedInto;
this.IsArchive = isArchive;
}
}
/**
* @internal Loads object from XML.
*
* @param {any} jsObject Json Object converted from XML.
*/
static LoadFromXmlJsObject(jsObject: any): RetentionPolicyTag {
let retentionPolicyTag: RetentionPolicyTag = new RetentionPolicyTag();
for (let key in jsObject) {
switch (key) {
case XmlElementNames.DisplayName:
retentionPolicyTag.DisplayName = jsObject[XmlElementNames.DisplayName];
break;
case XmlElementNames.RetentionId:
retentionPolicyTag.RetentionId = new Guid(jsObject[XmlElementNames.RetentionId]);
break;
case XmlElementNames.RetentionPeriod:
retentionPolicyTag.RetentionPeriod = Convert.toNumber(jsObject[XmlElementNames.RetentionPeriod]);
break;
case XmlElementNames.Type:
retentionPolicyTag.Type = ElcFolderType[<string>jsObject[XmlElementNames.Type]];
break;
case XmlElementNames.RetentionAction:
retentionPolicyTag.RetentionAction = RetentionActionType[<string>jsObject[XmlElementNames.RetentionAction]];
break;
case XmlElementNames.Description:
retentionPolicyTag.Description = jsObject[XmlElementNames.Description];
break;
case XmlElementNames.IsVisible:
retentionPolicyTag.IsVisible = Convert.toBool(jsObject[XmlElementNames.IsVisible]);
break;
case XmlElementNames.OptedInto:
retentionPolicyTag.OptedInto = Convert.toBool(jsObject[XmlElementNames.OptedInto]);
break;
case XmlElementNames.IsArchive:
retentionPolicyTag.IsArchive = Convert.toBool(jsObject[XmlElementNames.IsArchive]);
break;
default:
break;
}
}
return retentionPolicyTag;
}
}