/// <summary> /// Reads user setting from XML. /// </summary> /// <param name="reader">The reader.</param> private void ReadSettingFromXml(EwsXmlReader reader) { string name = null; object value = null; do { reader.Read(); if (reader.NodeType == XmlNodeType.Element) { switch (reader.LocalName) { case XmlElementNames.Name: name = reader.ReadElementValue <string>(); break; case XmlElementNames.Value: value = reader.ReadElementValue(); break; case XmlElementNames.WebClientUrls: value = WebClientUrlCollection.LoadFromXml(reader); break; case XmlElementNames.ProtocolConnections: value = ProtocolConnectionCollection.LoadFromXml(reader); break; case XmlElementNames.AlternateMailboxes: value = AlternateMailboxCollection.LoadFromXml(reader); break; case XmlElementNames.DocumentSharingLocations: value = DocumentSharingLocationCollection.LoadFromXml(reader); break; } } }while (!reader.IsEndElement(XmlNamespace.Autodiscover, XmlElementNames.UserSetting)); // EWS Managed API is broken with AutoDSvc endpoint in RedirectUrl scenario try { UserSettingName userSettingName = EwsUtilities.Parse <UserSettingName>(name); this.Settings.Add(userSettingName, value); } catch (ArgumentException) { // ignore unexpected UserSettingName in the response (due to the server-side bugs). // it'd be better if this is hooked into ITraceListener, but that is unavailable here. // // in case "name" is null, EwsUtilities.Parse throws ArgumentNullException // (which derives from ArgumentException). // EwsUtilities.Assert( false, "GetUserSettingsResponse.ReadSettingFromXml", "Unexpected or empty name element in user setting"); } }
/// <summary> /// Loads instance of DocumentSharingLocationCollection from XML. /// </summary> /// <param name="reader">The reader.</param> /// <returns>DocumentSharingLocationCollection</returns> internal static DocumentSharingLocationCollection LoadFromXml(EwsXmlReader reader) { DocumentSharingLocationCollection instance = new DocumentSharingLocationCollection(); do { reader.Read(); if ((reader.NodeType == XmlNodeType.Element) && (reader.LocalName == XmlElementNames.DocumentSharingLocation)) { DocumentSharingLocation location = DocumentSharingLocation.LoadFromXml(reader); instance.Entries.Add(location); } }while (!reader.IsEndElement(XmlNamespace.Autodiscover, XmlElementNames.DocumentSharingLocations)); return(instance); }
/// <summary> /// Loads instance of DocumentSharingLocationCollection from XML. /// </summary> /// <param name="reader">The reader.</param> /// <returns>DocumentSharingLocationCollection</returns> internal static DocumentSharingLocationCollection LoadFromXml(EwsXmlReader reader) { DocumentSharingLocationCollection instance = new DocumentSharingLocationCollection(); do { reader.Read(); if ((reader.NodeType == XmlNodeType.Element) && (reader.LocalName == XmlElementNames.DocumentSharingLocation)) { DocumentSharingLocation location = DocumentSharingLocation.LoadFromXml(reader); instance.Entries.Add(location); } } while (!reader.IsEndElement(XmlNamespace.Autodiscover, XmlElementNames.DocumentSharingLocations)); return instance; }