UNPKG

@jaricardodev/ews-javascript-api

Version:
87 lines (76 loc) 3.39 kB
import { DateTime } from "../../DateTime"; import { EwsServiceXmlWriter } from "../../Core/EwsServiceXmlWriter"; import { ExchangeService } from "../../ExchangeWebService"; import { ServiceLocalException } from "../../Exceptions/ServiceLocalException"; import { Strings } from "../../Strings"; import { TimeZoneDefinition } from "./TimeZoneDefinition"; import { TimeZoneInfo } from "../../TimeZoneInfo"; import { TimeZoneTransitionGroup } from "./TimeZoneTransitionGroup"; import { XmlElementNames } from "../../Core/XmlElementNames"; import { XmlNamespace } from "../../Enumerations/XmlNamespace"; import { TimeZoneTransition } from "./TimeZoneTransition"; /** * @internal Represents a time zone period transition that occurs on a fixed (absolute) date. */ export class AbsoluteDateTransition extends TimeZoneTransition { /** * Gets or sets the absolute date and time when the transition occurs. */ DateTime: DateTime; /** * @internal Initializes a new instance of the **AbsoluteDateTransition** class. * * @param {TimeZoneDefinition} timeZoneDefinition The time zone definition the transition will belong to. */ constructor(timeZoneDefinition: TimeZoneDefinition); /** * @internal Initializes a new instance of the **AbsoluteDateTransition** class. * * @param {TimeZoneDefinition} timeZoneDefinition The time zone definition the transition will belong to. * @param {TimeZoneTransitionGroup} targetGroup The transition group the transition will target. */ constructor(timeZoneDefinition: TimeZoneDefinition, targetGroup: TimeZoneTransitionGroup); constructor(timeZoneDefinition: TimeZoneDefinition, targetGroup?: TimeZoneTransitionGroup) { super(timeZoneDefinition, targetGroup); } /** * @internal Gets the name of the XML element. * * @return {string} XML element name. */ GetXmlElementName(): string { return XmlElementNames.AbsoluteDateTransition; } /** * @internal Initializes this transition based on the specified transition time. * * @param {TimeZoneInfo.TransitionTime} transitionTime The transition time to initialize from. */ InitializeFromTransitionTime(transitionTime: TimeZoneInfo.TransitionTime): TimeZoneInfo.TransitionTime { throw new ServiceLocalException(Strings.UnsupportedTimeZonePeriodTransitionTarget); } /** * @internal Loads service object from XML. * * @param {any} jsObject Json Object converted from XML. * @param {ExchangeService} service The service. */ LoadFromXmlJsObject(jsObject: any, service: ExchangeService): void { super.LoadFromXmlJsObject(jsObject, service); if (jsObject[XmlElementNames.DateTime]) { this.DateTime = DateTime.Parse(jsObject[XmlElementNames.DateTime]); } } /** * @internal Writes elements to XML. * * @param {EwsServiceXmlWriter} writer The writer. */ WriteElementsToXml(writer: EwsServiceXmlWriter): void { super.WriteElementsToXml(writer); writer.WriteElementValue( XmlNamespace.Types, XmlElementNames.DateTime, this.DateTime); } }