GetGraphServerTwitterSearchNetworkConfiguration
        (
            out String searchTerm,
            out Int32 startDateInDaysBeforeToday,
            out Int32 maximumStatusesGoingBackward,
            out Boolean expandStatusUrls,
            out String graphServerUserName,
            out String graphServerPassword,
            out String networkFileFolderPath
        )
        {
            AssertValid();
            Debug.Assert(m_oNetworkConfigurationXmlDocument != null);
            Debug.Assert(GetNetworkType() == NetworkType.GraphServerTwitterSearch);

            XmlNode oGraphServerTwitterSearchNetworkConfigurationNode =
                XmlUtil2.SelectRequiredSingleNode(
                    m_oNetworkConfigurationXmlDocument,

                    "/NetworkConfiguration/"
                    + " GraphServerTwitterSearchNetworkConfiguration",

                    null);

            searchTerm = XmlUtil2.SelectRequiredSingleNodeAsString(
                oGraphServerTwitterSearchNetworkConfigurationNode,
                "SearchTerm/text()", null);

            startDateInDaysBeforeToday = XmlUtil2.SelectRequiredSingleNodeAsInt32(
                oGraphServerTwitterSearchNetworkConfigurationNode,
                "StartDateInDaysBeforeToday/text()", null);

            if (startDateInDaysBeforeToday < 0)
            {
                throw new XmlException(
                          "The StartDateInDaysBeforeToday value can't be less than 0."
                          );
            }

            maximumStatusesGoingBackward = XmlUtil2.SelectRequiredSingleNodeAsInt32(
                oGraphServerTwitterSearchNetworkConfigurationNode,
                "MaximumStatusesGoingBackward/text()", null);

            if (maximumStatusesGoingBackward < 1)
            {
                throw new XmlException(
                          "The MaximumStatusesGoingBackward value can't be less than 1."
                          );
            }

            expandStatusUrls = XmlUtil2.SelectRequiredSingleNodeAsBoolean(
                oGraphServerTwitterSearchNetworkConfigurationNode,
                "ExpandStatusUrls/text()", null);

            graphServerUserName = XmlUtil2.SelectRequiredSingleNodeAsString(
                oGraphServerTwitterSearchNetworkConfigurationNode,
                "GraphServerUserName/text()", null);

            graphServerPassword = XmlUtil2.SelectRequiredSingleNodeAsString(
                oGraphServerTwitterSearchNetworkConfigurationNode,
                "GraphServerPassword/text()", null);

            GetCommonConfiguration(
                oGraphServerTwitterSearchNetworkConfigurationNode,
                out networkFileFolderPath);
        }
        GetTwitterSearchNetworkConfiguration
        (
            out String searchTerm,
            out TwitterSearchNetworkAnalyzer.WhatToInclude whatToInclude,
            out Int32 maximumStatuses,
            out String networkFileFolderPath
        )
        {
            AssertValid();
            Debug.Assert(m_oNetworkConfigurationXmlDocument != null);
            Debug.Assert(GetNetworkType() == NetworkType.TwitterSearch);

            XmlNode oTwitterSearchNetworkConfigurationNode =
                XmlUtil2.SelectRequiredSingleNode(
                    m_oNetworkConfigurationXmlDocument,
                    "/NetworkConfiguration/TwitterSearchNetworkConfiguration",
                    null);

            searchTerm = XmlUtil2.SelectRequiredSingleNodeAsString(
                oTwitterSearchNetworkConfigurationNode, "SearchTerm/text()", null);

            if (!XmlUtil2.TrySelectSingleNodeAsInt32(
                    oTwitterSearchNetworkConfigurationNode,
                    "MaximumStatuses/text()", null, out maximumStatuses))
            {
                // Older versions of NodeXL used a MaximumPeoplePerRequest value,
                // which has been replaced with MaximumStatuses.  To avoid breaking
                // older configuration files, accept either one.

                try
                {
                    maximumStatuses = XmlUtil2.SelectRequiredSingleNodeAsInt32(
                        oTwitterSearchNetworkConfigurationNode,
                        "MaximumPeoplePerRequest/text()", null);
                }
                catch
                {
                    throw new XmlException(
                              "There must be a MaximumStatuses value.  (This was called"
                              + " MaximumPeoplePerRequest in previous versions of"
                              + " NodeXL.)"
                              );
                }
            }

            whatToInclude =
                GetRequiredEnumValue <TwitterSearchNetworkAnalyzer.WhatToInclude>(

                    oTwitterSearchNetworkConfigurationNode,
                    "WhatToInclude/text()",

                    // These WhatToInclude values were removed in version
                    // 1.0.1.328.  They are now automatically included in the
                    // network.   Old configuration files might still specify them,
                    // so they need to be ignored.

                    new String[] {
                "Statuses",
                "Statistics",
                "RepliesToEdges",
                "MentionsEdges",
                "NonRepliesToNonMentionsEdges",
            },

                    "None",
                    "WhatToInclude"
                    );

            GetCommonConfiguration(oTwitterSearchNetworkConfigurationNode,
                                   out networkFileFolderPath);
        }