/// <summary> /// A method used to get a TimeZoneXML XML string, which is used to setting the recurrence appointment item on event list. /// </summary> /// <param name="timeZoneXMLData">A parameter represents the TimeZoneXML type instance which include the setting the settings of recurrence appointment.</param> /// <returns>A return value represents the serialized xml string from specified RecurrenceXML type instance.</returns> protected string GetTimeZoneXMLString(TimeZoneXML timeZoneXMLData) { string serializedXMLstring = string.Empty; StringBuilder strBuilder = new StringBuilder(); using (StringWriter stringWriter = new StringWriter(strBuilder)) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(TimeZoneXML)); xmlSerializer.Serialize(stringWriter, timeZoneXMLData); serializedXMLstring = strBuilder.ToString(); } XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(serializedXMLstring); var recurrenceXMLElementitems = from XmlNode childNodeItem in xmlDoc.ChildNodes where childNodeItem.LocalName.Equals("TimeZoneXML", StringComparison.OrdinalIgnoreCase) select childNodeItem; if (0 == recurrenceXMLElementitems.Count()) { this.Site.Assert.Fail("The de-serialize XML string should contain expected TimeZoneXML element. Current XML string:\r\n[{0}]", serializedXMLstring); } XmlElement recurrenceXMLElement = (XmlElement)recurrenceXMLElementitems.ElementAt<XmlNode>(0); serializedXMLstring = recurrenceXMLElement.InnerXml; serializedXMLstring = serializedXMLstring.Replace(@" xmlns=""http://schemas.microsoft.com/sharepoint/soap/""", string.Empty); return serializedXMLstring; }
/// <summary> /// A method used to get TimeZoneXML setting instance of Pacific time(UTC-8:00). The daylight saving setting is that: UTC-7:00 start at "3th month/second week/Sunday/2:00 AM" and end at "11th month/first week/Sunday/2:00 AM" /// </summary> /// <returns>A return value represents the TimeZoneXML instance of Pacific time</returns> protected TimeZoneXML GetCustomPacificTimeZoneXmlSetting() { TimeZoneXML timeZoneXml = new TimeZoneXML(); timeZoneXml.timeZoneRule = new TimeZoneRule(); // standardDate element timeZoneXml.timeZoneRule.standardDate = new TransitionDate(); timeZoneXml.timeZoneRule.standardDate.transitionRule = new TransitionDateTransitionRule(); timeZoneXml.timeZoneRule.standardDate.transitionRule.month = "11"; timeZoneXml.timeZoneRule.standardDate.transitionRule.day = DayOfWeek.su; timeZoneXml.timeZoneRule.standardDate.transitionRule.daySpecified = true; timeZoneXml.timeZoneRule.standardDate.transitionRule.weekdayOfMonth = WeekdayOfMonth.first; timeZoneXml.timeZoneRule.standardDate.transitionRule.weekdayOfMonthSpecified = true; timeZoneXml.timeZoneRule.standardDate.transitionTime = "2:0:0"; // daylightDate element timeZoneXml.timeZoneRule.daylightDate = new TransitionDate(); timeZoneXml.timeZoneRule.daylightDate.transitionRule = new TransitionDateTransitionRule(); timeZoneXml.timeZoneRule.daylightDate.transitionRule.month = "3"; timeZoneXml.timeZoneRule.daylightDate.transitionRule.day = DayOfWeek.su; timeZoneXml.timeZoneRule.daylightDate.transitionRule.daySpecified = true; timeZoneXml.timeZoneRule.daylightDate.transitionRule.weekdayOfMonth = WeekdayOfMonth.second; timeZoneXml.timeZoneRule.daylightDate.transitionRule.weekdayOfMonthSpecified = true; timeZoneXml.timeZoneRule.daylightDate.transitionTime = "2:0:0"; timeZoneXml.timeZoneRule.standardBias = "480"; timeZoneXml.timeZoneRule.additionalDaylightBias = "-60"; return timeZoneXml; }