/// <summary> /// Loads from json. /// </summary> /// <param name="jsonProperty">The json property.</param> /// <param name="service">The service.</param> internal override void LoadFromJson(JsonObject jsonProperty, ExchangeService service) { this.date = DateTime.Parse(jsonProperty.ReadAsString(XmlElementNames.Date)); this.quality = jsonProperty.ReadEnumValue <SuggestionQuality>(XmlElementNames.DayQuality); foreach (object jsonSuggestion in jsonProperty.ReadAsArray(XmlElementNames.SuggestionArray)) { TimeSuggestion timeSuggestion = new TimeSuggestion(); timeSuggestion.LoadFromJson(jsonSuggestion as JsonObject, service); this.timeSuggestions.Add(timeSuggestion); } }
/// <summary> /// Tries to read element from XML. /// </summary> /// <param name="reader">The reader.</param> /// <returns>True if appropriate element was read.</returns> internal override bool TryReadElementFromXml(EwsServiceXmlReader reader) { switch (reader.LocalName) { case XmlElementNames.Date: // The date that is returned by Availability is unscoped. DateTime tempDate = DateTime.Parse(reader.ReadElementValue(), CultureInfo.InvariantCulture); if (tempDate.Kind != DateTimeKind.Unspecified) { this.date = new DateTime(tempDate.Ticks, DateTimeKind.Unspecified); } else { this.date = tempDate; } return(true); case XmlElementNames.DayQuality: this.quality = reader.ReadElementValue <SuggestionQuality>(); return(true); case XmlElementNames.SuggestionArray: if (!reader.IsEmptyElement) { do { reader.Read(); if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.Suggestion)) { TimeSuggestion timeSuggestion = new TimeSuggestion(); timeSuggestion.LoadFromXml(reader, reader.LocalName); this.timeSuggestions.Add(timeSuggestion); } }while (!reader.IsEndElement(XmlNamespace.Types, XmlElementNames.SuggestionArray)); } return(true); default: return(false); } }
/// <summary> /// Tries to read element from XML. /// </summary> /// <param name="reader">The reader.</param> /// <returns>True if appropriate element was read.</returns> internal override bool TryReadElementFromXml(EwsServiceXmlReader reader) { switch (reader.LocalName) { case XmlElementNames.Date: // The date that is returned by Availability is unscoped. DateTime tempDate = DateTime.Parse(reader.ReadElementValue(), CultureInfo.InvariantCulture); if (tempDate.Kind != DateTimeKind.Unspecified) { this.date = new DateTime(tempDate.Ticks, DateTimeKind.Unspecified); } else { this.date = tempDate; } return true; case XmlElementNames.DayQuality: this.quality = reader.ReadElementValue<SuggestionQuality>(); return true; case XmlElementNames.SuggestionArray: if (!reader.IsEmptyElement) { do { reader.Read(); if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.Suggestion)) { TimeSuggestion timeSuggestion = new TimeSuggestion(); timeSuggestion.LoadFromXml(reader, reader.LocalName); this.timeSuggestions.Add(timeSuggestion); } } while (!reader.IsEndElement(XmlNamespace.Types, XmlElementNames.SuggestionArray)); } return true; default: return false; } }