Пример #1
0
        /// <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;
        }
Пример #2
0
        /// <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;
        }