@jaricardodev/ews-javascript-api
Version:
EWS Managed api in JavaScript
54 lines (51 loc) • 2.56 kB
text/typescript
import {ServiceObject} from "../ServiceObjects/ServiceObject";
import {ServiceResponse} from "../Responses/ServiceResponse";
import {FolderId} from "../../ComplexProperties/FolderId";
import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling";
import {XmlNamespace} from "../../Enumerations/XmlNamespace";
import {ExchangeService} from "../ExchangeService";
import {EwsServiceXmlWriter} from "../EwsServiceXmlWriter";
import {MultiResponseServiceRequest} from "./MultiResponseServiceRequest";
/** @internal */
export class CreateRequest<TServiceObject extends ServiceObject, TResponse extends ServiceResponse> extends MultiResponseServiceRequest<TResponse> {//IJsonSerializable
private parentFolderId: FolderId = null;
private objects: TServiceObject[] = [];// null;
set Objects(value: TServiceObject[]) {
this.objects = value;
}
get Objects(): TServiceObject[] {
return this.objects;
}
set ParentFolderId(value: FolderId) {
this.parentFolderId = value;
}
get ParentFolderId(): FolderId {
return this.parentFolderId;
}
constructor(service: ExchangeService, errorHandlingMode: ServiceErrorHandling) {
super(service, errorHandlingMode);
}
AddJsonProperties(jsonRequest: any, service: ExchangeService): any { throw new Error("CreateRequest.ts - AddJsonProperties : Not implemented."); }
GetExpectedResponseMessageCount(): number { return this.Objects.length; }
GetObjectCollectionXmlElementName(): string { throw new Error("CreateRequest.ts - GetObjectCollectionXmlElementName : abstract - must implement."); }
GetParentFolderXmlElementName(): string { throw new Error("CreateRequest.ts - GetParentFolderXmlElementName : abstract - must implement."); }
Validate(): void {
super.Validate();
if (this.ParentFolderId != null) {
this.ParentFolderId.Validate(this.Service.RequestedServerVersion);
}
}
/**@internal */
WriteElementsToXml(writer: EwsServiceXmlWriter): void {
if (this.ParentFolderId != null) {
writer.WriteStartElement(XmlNamespace.Messages, this.GetParentFolderXmlElementName());
this.ParentFolderId.WriteToXml(writer);
writer.WriteEndElement();
}
writer.WriteStartElement(XmlNamespace.Messages, this.GetObjectCollectionXmlElementName());
for (var obj of this.objects) {
obj.WriteToXml(writer);
}
writer.WriteEndElement();
}
}