@jaricardodev/ews-javascript-api
Version:
EWS Managed api in JavaScript
89 lines (80 loc) • 2.92 kB
text/typescript
import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter";
import {ExchangeService} from "../Core/ExchangeService";
import {StringHelper} from '../ExtensionMethods';
import {XmlAttributeNames} from "../Core/XmlAttributeNames";
import {XmlElementNames} from "../Core/XmlElementNames";
import {ComplexProperty} from "./ComplexProperty";
/**
* Represents the MIME content of an item.
*/
export abstract class MimeContentBase extends ComplexProperty {
/**
* characterSet returned
*/
private characterSet: string;
/**
* content received
*/
private content: string;//byte[]
/**
* to set XMLElementName when reading XML JsObject value.
*/
protected xmlElementName: string = XmlElementNames.MimeContent;
/**
* Gets or sets the character set of the content.
*/
get CharacterSet(): string {
return this.characterSet;
}
set CharacterSet(value: string) {
this.SetFieldValue<string>({ getValue: () => this.characterSet, setValue: (updateValue) => { this.characterSet = updateValue } }, value);
}
/**
* Gets or sets the content. - ews-javascript-api this is base64 value without encoding applied.
*/
get Content(): string {
return this.content;
}
set Content(value: string) {
this.SetFieldValue<string>({ getValue: () => this.content, setValue: (updateValue) => { this.content = updateValue } }, value);
}
/**
* @internal Loads service object from XML.
*
* @param {any} jsObject Json Object converted from XML.
* @param {ExchangeService} service The service.
*/
LoadFromXmlJsObject(jsObject: any/*JsonObject*/, service: ExchangeService): void {
for (let key in jsObject) {
switch (key) {
case XmlAttributeNames.CharacterSet:
this.characterSet = jsObject[key];
break;
case this.xmlElementName: //ref: text value in xml2jsobject
this.content = jsObject[key];;
break;
default:
break;
}
}
}
/**
* @internal Writes attributes to XML.
*
* @param {EwsServiceXmlWriter} writer The writer.
*/
WriteAttributesToXml(writer: EwsServiceXmlWriter): void {
writer.WriteAttributeValue(XmlAttributeNames.CharacterSet, this.CharacterSet);
}
/**
* @internal Writes elements to XML.
*
* @param {EwsServiceXmlWriter} writer The writer.
*/
WriteElementsToXml(writer: EwsServiceXmlWriter): void {
if (!StringHelper.IsNullOrEmpty(this.Content)) {
writer.WriteValue(this.Content, this.xmlElementName);
//writer.WriteBase64ElementValue(this.Content);
}
}
}