Exemplo n.º 1
0
        /// <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));
        }