/// <summary> /// Load from XML. /// </summary> /// <param name="reader">The reader.</param> internal void LoadFromXml(EwsXmlReader reader) { do { reader.Read(); if (reader.NodeType == XmlNodeType.Element) { switch (reader.LocalName) { case XmlElementNames.AccountType: this.AccountType = reader.ReadElementValue(); break; case XmlElementNames.Action: string xmlResponseType = reader.ReadElementValue(); switch (xmlResponseType) { case OutlookAccount.Settings: this.ResponseType = AutodiscoverResponseType.Success; break; case OutlookAccount.RedirectUrl: this.ResponseType = AutodiscoverResponseType.RedirectUrl; break; case OutlookAccount.RedirectAddr: this.ResponseType = AutodiscoverResponseType.RedirectAddress; break; default: this.ResponseType = AutodiscoverResponseType.Error; break; } break; case XmlElementNames.Protocol: OutlookProtocol protocol = new OutlookProtocol(); protocol.LoadFromXml(reader); if (this.protocols.ContainsKey(protocol.ProtocolType)) { // There should be strictly one node per protocol type in the autodiscover response. throw new ServiceLocalException(Strings.InvalidAutodiscoverServiceResponse); } this.protocols.Add(protocol.ProtocolType, protocol); break; case XmlElementNames.RedirectAddr: case XmlElementNames.RedirectUrl: this.RedirectTarget = reader.ReadElementValue(); break; case XmlElementNames.AlternateMailboxes: AlternateMailbox alternateMailbox = AlternateMailbox.LoadFromXml(reader); this.alternateMailboxes.Entries.Add(alternateMailbox); break; default: reader.SkipCurrentElement(); break; } } } while (!reader.IsEndElement(XmlNamespace.NotSpecified, XmlElementNames.Account)); }
/// <summary> /// Load from XML. /// </summary> /// <param name="reader">The reader.</param> internal void LoadFromXml(EwsXmlReader reader) { do { reader.Read(); if (reader.NodeType == XmlNodeType.Element) { switch (reader.LocalName) { case XmlElementNames.AccountType: this.AccountType = reader.ReadElementValue(); break; case XmlElementNames.Action: string xmlResponseType = reader.ReadElementValue(); switch (xmlResponseType) { case OutlookAccount.Settings: this.ResponseType = AutodiscoverResponseType.Success; break; case OutlookAccount.RedirectUrl: this.ResponseType = AutodiscoverResponseType.RedirectUrl; break; case OutlookAccount.RedirectAddr: this.ResponseType = AutodiscoverResponseType.RedirectAddress; break; default: this.ResponseType = AutodiscoverResponseType.Error; break; } break; case XmlElementNames.Protocol: OutlookProtocol protocol = new OutlookProtocol(); protocol.LoadFromXml(reader); if (this.protocols.ContainsKey(protocol.ProtocolType)) { // There should be strictly one node per protocol type in the autodiscover response. throw new ServiceLocalException(Strings.InvalidAutodiscoverServiceResponse); } this.protocols.Add(protocol.ProtocolType, protocol); break; case XmlElementNames.RedirectAddr: case XmlElementNames.RedirectUrl: this.RedirectTarget = reader.ReadElementValue(); break; case XmlElementNames.AlternateMailboxes: AlternateMailbox alternateMailbox = AlternateMailbox.LoadFromXml(reader); this.alternateMailboxes.Entries.Add(alternateMailbox); break; default: reader.SkipCurrentElement(); break; } } }while (!reader.IsEndElement(XmlNamespace.NotSpecified, XmlElementNames.Account)); }
/// <summary> /// Loads from XML. /// </summary> /// <param name="reader">The reader.</param> internal void LoadFromXml(EwsXmlReader reader) { do { reader.Read(); if (reader.NodeType == XmlNodeType.Element) { switch (reader.LocalName) { case XmlElementNames.Type: this.ProtocolType = OutlookProtocol.ProtocolNameToType(reader.ReadElementValue()); break; case XmlElementNames.AuthPackage: this.authPackage = reader.ReadElementValue(); break; case XmlElementNames.Server: this.server = reader.ReadElementValue(); break; case XmlElementNames.ServerDN: this.serverDN = reader.ReadElementValue(); break; case XmlElementNames.ServerVersion: // just read it out reader.ReadElementValue(); break; case XmlElementNames.AD: this.activeDirectoryServer = reader.ReadElementValue(); break; case XmlElementNames.MdbDN: this.mailboxDN = reader.ReadElementValue(); break; case XmlElementNames.EWSUrl: this.exchangeWebServicesUrl = reader.ReadElementValue(); break; case XmlElementNames.EmwsUrl: this.exchangeManagementWebServicesUrl = reader.ReadElementValue(); break; case XmlElementNames.ASUrl: this.availabilityServiceUrl = reader.ReadElementValue(); break; case XmlElementNames.OOFUrl: // just read it out reader.ReadElementValue(); break; case XmlElementNames.UMUrl: this.unifiedMessagingUrl = reader.ReadElementValue(); break; case XmlElementNames.OABUrl: this.offlineAddressBookUrl = reader.ReadElementValue(); break; case XmlElementNames.PublicFolderServer: this.publicFolderServer = reader.ReadElementValue(); break; case XmlElementNames.Internal: OutlookProtocol.LoadWebClientUrlsFromXml(reader, this.internalOutlookWebAccessUrls, reader.LocalName); break; case XmlElementNames.External: OutlookProtocol.LoadWebClientUrlsFromXml(reader, this.externalOutlookWebAccessUrls, reader.LocalName); break; case XmlElementNames.Ssl: string sslStr = reader.ReadElementValue(); this.sslEnabled = sslStr.Equals("On", StringComparison.OrdinalIgnoreCase); break; case XmlElementNames.SharingUrl: this.sharingEnabled = reader.ReadElementValue().Length > 0; break; case XmlElementNames.EcpUrl: this.ecpUrl = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_um: this.ecpUrlUm = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_aggr: this.ecpUrlAggr = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_sms: this.ecpUrlSms = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_mt: this.ecpUrlMt = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_ret: this.ecpUrlRet = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_publish: this.ecpUrlPublish = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_photo: this.ecpUrlPhoto = reader.ReadElementValue(); break; case XmlElementNames.ExchangeRpcUrl: this.exchangeRpcUrl = reader.ReadElementValue(); break; case XmlElementNames.EwsPartnerUrl: this.exchangeWebServicesPartnerUrl = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_connect: this.ecpUrlConnect = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_tm: this.ecpUrlTm = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_tmCreating: this.ecpUrlTmCreating = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_tmEditing: this.ecpUrlTmEditing = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_tmHiding: this.ecpUrlTmHiding = reader.ReadElementValue(); break; case XmlElementNames.SiteMailboxCreationURL: this.siteMailboxCreationURL = reader.ReadElementValue(); break; case XmlElementNames.EcpUrl_extinstall: this.ecpUrlExtInstall = reader.ReadElementValue(); break; case XmlElementNames.ServerExclusiveConnect: string serverExclusiveConnectStr = reader.ReadElementValue(); this.serverExclusiveConnect = serverExclusiveConnectStr.Equals("On", StringComparison.OrdinalIgnoreCase); break; case XmlElementNames.CertPrincipalName: this.certPrincipalName = reader.ReadElementValue(); break; case XmlElementNames.GroupingInformation: this.groupingInformation = reader.ReadElementValue(); break; default: reader.SkipCurrentElement(); break; } } }while (!reader.IsEndElement(XmlNamespace.NotSpecified, XmlElementNames.Protocol)); }