/// <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) { foreach (string key in jsonProperty.Keys) { switch (key) { case XmlElementNames.MeetingTime: this.meetingTime = EwsUtilities.ParseAsUnbiasedDatetimescopedToServicetimeZone(jsonProperty.ReadAsString(key), service); break; case XmlElementNames.IsWorkTime: this.isWorkTime = jsonProperty.ReadAsBool(key); break; case XmlElementNames.SuggestionQuality: this.quality = jsonProperty.ReadEnumValue <SuggestionQuality>(key); break; case XmlElementNames.AttendeeConflictDataArray: object[] jsonConflictArray = jsonProperty.ReadAsArray(key); foreach (object conflictObject in jsonConflictArray) { JsonObject jsonConflict = conflictObject as JsonObject; if (jsonConflict != null) { Conflict conflict = null; switch (jsonConflict.ReadTypeString()) { case XmlElementNames.UnknownAttendeeConflictData: conflict = new Conflict(ConflictType.UnknownAttendeeConflict); break; case XmlElementNames.TooBigGroupAttendeeConflictData: conflict = new Conflict(ConflictType.GroupTooBigConflict); break; case XmlElementNames.IndividualAttendeeConflictData: conflict = new Conflict(ConflictType.IndividualAttendeeConflict); break; case XmlElementNames.GroupAttendeeConflictData: conflict = new Conflict(ConflictType.GroupConflict); break; default: EwsUtilities.Assert( false, "TimeSuggestion.TryReadElementFromJson", string.Format("The {0} element name does not map to any AttendeeConflict descendant.", jsonConflict.ReadTypeString())); // The following line to please the compiler break; } conflict.LoadFromJson(jsonConflict, service); this.conflicts.Add(conflict); } } break; default: break; } } }
/// <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.MeetingTime: this.meetingTime = reader.ReadElementValueAsUnbiasedDateTimeScopedToServiceTimeZone(); return(true); case XmlElementNames.IsWorkTime: this.isWorkTime = reader.ReadElementValue <bool>(); return(true); case XmlElementNames.SuggestionQuality: this.quality = reader.ReadElementValue <SuggestionQuality>(); return(true); case XmlElementNames.AttendeeConflictDataArray: if (!reader.IsEmptyElement) { do { reader.Read(); if (reader.IsStartElement()) { Conflict conflict = null; switch (reader.LocalName) { case XmlElementNames.UnknownAttendeeConflictData: conflict = new Conflict(ConflictType.UnknownAttendeeConflict); break; case XmlElementNames.TooBigGroupAttendeeConflictData: conflict = new Conflict(ConflictType.GroupTooBigConflict); break; case XmlElementNames.IndividualAttendeeConflictData: conflict = new Conflict(ConflictType.IndividualAttendeeConflict); break; case XmlElementNames.GroupAttendeeConflictData: conflict = new Conflict(ConflictType.GroupConflict); break; default: EwsUtilities.Assert( false, "TimeSuggestion.TryReadElementFromXml", string.Format("The {0} element name does not map to any AttendeeConflict descendant.", reader.LocalName)); // The following line to please the compiler break; } conflict.LoadFromXml(reader, reader.LocalName); this.conflicts.Add(conflict); } }while (!reader.IsEndElement(XmlNamespace.Types, XmlElementNames.AttendeeConflictDataArray)); } 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.MeetingTime: this.meetingTime = reader.ReadElementValueAsUnbiasedDateTimeScopedToServiceTimeZone(); return true; case XmlElementNames.IsWorkTime: this.isWorkTime = reader.ReadElementValue<bool>(); return true; case XmlElementNames.SuggestionQuality: this.quality = reader.ReadElementValue<SuggestionQuality>(); return true; case XmlElementNames.AttendeeConflictDataArray: if (!reader.IsEmptyElement) { do { reader.Read(); if (reader.IsStartElement()) { Conflict conflict = null; switch (reader.LocalName) { case XmlElementNames.UnknownAttendeeConflictData: conflict = new Conflict(ConflictType.UnknownAttendeeConflict); break; case XmlElementNames.TooBigGroupAttendeeConflictData: conflict = new Conflict(ConflictType.GroupTooBigConflict); break; case XmlElementNames.IndividualAttendeeConflictData: conflict = new Conflict(ConflictType.IndividualAttendeeConflict); break; case XmlElementNames.GroupAttendeeConflictData: conflict = new Conflict(ConflictType.GroupConflict); break; default: EwsUtilities.Assert( false, "TimeSuggestion.TryReadElementFromXml", string.Format("The {0} element name does not map to any AttendeeConflict descendant.", reader.LocalName)); // The following line to please the compiler break; } conflict.LoadFromXml(reader, reader.LocalName); this.conflicts.Add(conflict); } } while (!reader.IsEndElement(XmlNamespace.Types, XmlElementNames.AttendeeConflictDataArray)); } return true; default: return false; } }