/// <summary> /// Parses the XML through the specified reader and creates an Autodiscover error. /// </summary> /// <param name="reader">The reader.</param> /// <returns>An Autodiscover error.</returns> internal static AutodiscoverError Parse(EwsXmlReader reader) { AutodiscoverError error = new AutodiscoverError(); error.time = reader.ReadAttributeValue(XmlAttributeNames.Time); error.id = reader.ReadAttributeValue(XmlAttributeNames.Id); do { reader.Read(); if (reader.NodeType == XmlNodeType.Element) { switch (reader.LocalName) { case XmlElementNames.ErrorCode: error.errorCode = reader.ReadElementValue<int>(); break; case XmlElementNames.Message: error.message = reader.ReadElementValue(); break; case XmlElementNames.DebugData: error.debugData = reader.ReadElementValue(); break; default: reader.SkipCurrentElement(); break; } } } while (!reader.IsEndElement(XmlNamespace.NotSpecified, XmlElementNames.Error)); return error; }
/// <summary> /// Loads from XML. /// </summary> /// <param name="reader">The reader.</param> internal void LoadUserSettingsFromXml(EwsXmlReader reader) { if (!reader.IsEmptyElement) { do { reader.Read(); if ((reader.NodeType == XmlNodeType.Element) && (reader.LocalName == XmlElementNames.UserSetting)) { string settingClass = reader.ReadAttributeValue(XmlNamespace.XmlSchemaInstance, XmlAttributeNames.Type); switch (settingClass) { case XmlElementNames.StringSetting: case XmlElementNames.WebClientUrlCollectionSetting: case XmlElementNames.AlternateMailboxCollectionSetting: case XmlElementNames.ProtocolConnectionCollectionSetting: case XmlElementNames.DocumentSharingLocationCollectionSetting: this.ReadSettingFromXml(reader); break; default: EwsUtilities.Assert( false, "GetUserSettingsResponse.LoadUserSettingsFromXml", string.Format("Invalid setting class '{0}' returned", settingClass)); break; } } }while (!reader.IsEndElement(XmlNamespace.Autodiscover, XmlElementNames.UserSettings)); } }
/// <summary> /// Loads from XML. /// </summary> /// <param name="reader">The reader.</param> internal void LoadDomainSettingsFromXml(EwsXmlReader reader) { if (!reader.IsEmptyElement) { do { reader.Read(); if ((reader.NodeType == XmlNodeType.Element) && (reader.LocalName == XmlElementNames.DomainSetting)) { string settingClass = reader.ReadAttributeValue(XmlNamespace.XmlSchemaInstance, XmlAttributeNames.Type); switch (settingClass) { case XmlElementNames.DomainStringSetting: this.ReadSettingFromXml(reader); break; default: EwsUtilities.Assert( false, "GetDomainSettingsResponse.LoadDomainSettingsFromXml", string.Format("Invalid setting class '{0}' returned", settingClass)); break; } } }while (!reader.IsEndElement(XmlNamespace.Autodiscover, XmlElementNames.DomainSettings)); } }
/// <summary> /// Parses the XML through the specified reader and creates an Autodiscover error. /// </summary> /// <param name="reader">The reader.</param> /// <returns>An Autodiscover error.</returns> internal static AutodiscoverError Parse(EwsXmlReader reader) { AutodiscoverError error = new AutodiscoverError(); error.time = reader.ReadAttributeValue(XmlAttributeNames.Time); error.id = reader.ReadAttributeValue(XmlAttributeNames.Id); do { reader.Read(); if (reader.NodeType == XmlNodeType.Element) { switch (reader.LocalName) { case XmlElementNames.ErrorCode: error.errorCode = reader.ReadElementValue <int>(); break; case XmlElementNames.Message: error.message = reader.ReadElementValue(); break; case XmlElementNames.DebugData: error.debugData = reader.ReadElementValue(); break; default: reader.SkipCurrentElement(); break; } } }while (!reader.IsEndElement(XmlNamespace.NotSpecified, XmlElementNames.Error)); return(error); }
/// <summary> /// Loads web client urls from XML. /// </summary> /// <param name="reader">The reader.</param> /// <param name="webClientUrls">The web client urls.</param> /// <param name="elementName">Name of the element.</param> private static void LoadWebClientUrlsFromXml(EwsXmlReader reader, WebClientUrlCollection webClientUrls, string elementName) { do { reader.Read(); if (reader.NodeType == XmlNodeType.Element) { switch (reader.LocalName) { case XmlElementNames.OWAUrl: string authMethod = reader.ReadAttributeValue(XmlAttributeNames.AuthenticationMethod); string owaUrl = reader.ReadElementValue(); WebClientUrl webClientUrl = new WebClientUrl(authMethod, owaUrl); webClientUrls.Urls.Add(webClientUrl); break; default: reader.SkipCurrentElement(); break; } } }while (!reader.IsEndElement(XmlNamespace.NotSpecified, elementName)); }
/// <summary> /// Parses the message XML. /// </summary> /// <param name="reader">The reader.</param> private void ParseMessageXml(EwsXmlReader reader) { // E12 and E14 return the MessageXml element in different // namespaces (types namespace for E12, errors namespace in E14). To // avoid this problem, the parser will match the namespace from the // start and end elements. XmlNamespace elementNS = EwsUtilities.GetNamespaceFromUri(reader.NamespaceUri); if (!reader.IsEmptyElement) { do { reader.Read(); if (reader.IsStartElement() && !reader.IsEmptyElement) { switch (reader.LocalName) { case XmlElementNames.Value: this.errorDetails.Add( reader.ReadAttributeValue(XmlAttributeNames.Name), reader.ReadElementValue()); break; default: break; } } } while (!reader.IsEndElement(elementNS, XmlElementNames.MessageXml)); } }
/// <summary> /// Loads web client urls from XML. /// </summary> /// <param name="reader">The reader.</param> /// <param name="webClientUrls">The web client urls.</param> /// <param name="elementName">Name of the element.</param> private static void LoadWebClientUrlsFromXml(EwsXmlReader reader, WebClientUrlCollection webClientUrls, string elementName) { do { reader.Read(); if (reader.NodeType == XmlNodeType.Element) { switch (reader.LocalName) { case XmlElementNames.OWAUrl: string authMethod = reader.ReadAttributeValue(XmlAttributeNames.AuthenticationMethod); string owaUrl = reader.ReadElementValue(); WebClientUrl webClientUrl = new WebClientUrl(authMethod, owaUrl); webClientUrls.Urls.Add(webClientUrl); break; default: reader.SkipCurrentElement(); break; } } } while (!reader.IsEndElement(XmlNamespace.NotSpecified, elementName)); }
/// <summary> /// Loads from XML. /// </summary> /// <param name="reader">The reader.</param> internal void LoadDomainSettingsFromXml(EwsXmlReader reader) { if (!reader.IsEmptyElement) { do { reader.Read(); if ((reader.NodeType == XmlNodeType.Element) && (reader.LocalName == XmlElementNames.DomainSetting)) { string settingClass = reader.ReadAttributeValue(XmlNamespace.XmlSchemaInstance, XmlAttributeNames.Type); switch (settingClass) { case XmlElementNames.DomainStringSetting: this.ReadSettingFromXml(reader); break; default: EwsUtilities.Assert( false, "GetDomainSettingsResponse.LoadDomainSettingsFromXml", string.Format("Invalid setting class '{0}' returned", settingClass)); break; } } } while (!reader.IsEndElement(XmlNamespace.Autodiscover, XmlElementNames.DomainSettings)); } }