UNPKG

@jaricardodev/ews-javascript-api

Version:
54 lines (51 loc) 2.56 kB
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(); } }