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