@jaricardodev/ews-javascript-api
Version:
EWS Managed api in JavaScript
73 lines (64 loc) • 3.2 kB
text/typescript
import {Item} from "../ServiceObjects/Items/Item";
import {FolderId} from "../../ComplexProperties/FolderId";
import {ExchangeService} from "../ExchangeService";
import {XmlAttributeNames} from "../XmlAttributeNames";
import {ServiceResponse} from "../Responses/ServiceResponse";
import {XmlElementNames} from "../XmlElementNames";
import {XmlNamespace} from "../../Enumerations/XmlNamespace";
import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling";
import {ExchangeVersion} from "../../Enumerations/ExchangeVersion";
import {EwsServiceXmlWriter} from "../EwsServiceXmlWriter";
import {MultiResponseServiceRequest} from "./MultiResponseServiceRequest";
/** @internal */
export class SendItemRequest extends MultiResponseServiceRequest<ServiceResponse> {//IJsonSerializable
private items: Item[] = [];
private savedCopyDestinationFolderId: FolderId = null;
get Items(): Item[] {
return this.items;
}
set Items(value: Item[]) {
this.items = value;
}
get SavedCopyDestinationFolderId(): FolderId {
return this.savedCopyDestinationFolderId;
}
set SavedCopyDestinationFolderId(value: FolderId) {
this.savedCopyDestinationFolderId = value;
}
constructor(service: ExchangeService, errorHandlingModeServiceErrorHandling: ServiceErrorHandling) {
super(service, errorHandlingModeServiceErrorHandling);
}
CreateServiceResponse(service: ExchangeService, responseIndex: number): ServiceResponse { return new ServiceResponse(); }
GetExpectedResponseMessageCount(): number { return this.items.length; }
GetMinimumRequiredServerVersion(): ExchangeVersion { return ExchangeVersion.Exchange2007_SP1; }
GetResponseMessageXmlElementName(): string { return XmlElementNames.SendItemResponseMessage; }
GetResponseXmlElementName(): string { return XmlElementNames.SendItemResponse; }
GetXmlElementName(): string { return XmlElementNames.SendItem; }
Validate(): void {
super.Validate();
//EwsUtilities.ValidateParam(this.Items, "Items");
if (this.SavedCopyDestinationFolderId != null) {
this.SavedCopyDestinationFolderId.Validate(this.Service.RequestedServerVersion);
}
}
/**@internal */
WriteAttributesToXml(writer: EwsServiceXmlWriter): void {
super.WriteAttributesToXml(writer);
writer.WriteAttributeValue(
XmlAttributeNames.SaveItemToFolder,
this.SavedCopyDestinationFolderId != null);
}
/**@internal */
WriteElementsToXml(writer: EwsServiceXmlWriter): void {
writer.WriteStartElement(XmlNamespace.Messages, XmlElementNames.ItemIds);
for (var item of this.items) {
item.Id.WriteToXml(writer);//, XmlElementNames.ItemId);
}
writer.WriteEndElement(); // ItemIds
if (this.SavedCopyDestinationFolderId != null) {
writer.WriteStartElement(XmlNamespace.Messages, XmlElementNames.SavedItemFolderId);
this.SavedCopyDestinationFolderId.WriteToXml(writer);
writer.WriteEndElement();
}
}
}