Пример #1
0
        RunProgram
        (
            string[] args
        )
        {
            String sNetworkConfigurationFilePath;

            ParseCommandLine(args, out sNetworkConfigurationFilePath);

            NetworkConfigurationFileParser oNetworkConfigurationFileParser =
                new NetworkConfigurationFileParser();

            NetworkType eNetworkType = NetworkType.TwitterSearch;

            try
            {
                oNetworkConfigurationFileParser.OpenNetworkConfigurationFile(
                    sNetworkConfigurationFilePath);

                eNetworkType = oNetworkConfigurationFileParser.GetNetworkType();
            }
            catch (XmlException oXmlException)
            {
                OnNetworkConfigurationFileException(oXmlException);
            }

            XmlDocument        oXmlDocument            = null;
            String             sNetworkFileFolderPath  = null;
            DateTime           oStartTime              = DateTime.Now;
            NetworkFileFormats eNetworkFileFormats     = NetworkFileFormats.None;
            Boolean            bAutomateNodeXLWorkbook = false;

            switch (eNetworkType)
            {
            case NetworkType.TwitterSearch:

                GetTwitterSearchNetwork(oStartTime,
                                        sNetworkConfigurationFilePath,
                                        oNetworkConfigurationFileParser, out oXmlDocument,
                                        out sNetworkFileFolderPath, out eNetworkFileFormats,
                                        out bAutomateNodeXLWorkbook);

                break;

            case NetworkType.TwitterUser:

                GetTwitterUserNetwork(oStartTime,
                                      sNetworkConfigurationFilePath,
                                      oNetworkConfigurationFileParser, out oXmlDocument,
                                      out sNetworkFileFolderPath, out eNetworkFileFormats,
                                      out bAutomateNodeXLWorkbook);

                break;

            default:

                Debug.Assert(false);
                break;
            }

            Debug.Assert(oXmlDocument != null);

            SaveNetwork(oStartTime, oXmlDocument, sNetworkConfigurationFilePath,
                        sNetworkFileFolderPath, eNetworkFileFormats,
                        bAutomateNodeXLWorkbook);

            Exit(ExitCode.Success, null);
        }
Пример #2
0
        GetTwitterUserNetwork
        (
            DateTime oStartTime,
            String sNetworkConfigurationFilePath,
            NetworkConfigurationFileParser oNetworkConfigurationFileParser,
            out XmlDocument oXmlDocument,
            out String sNetworkFileFolderPath,
            out NetworkFileFormats eNetworkFileFormats,
            out Boolean bAutomateNodeXLWorkbook
        )
        {
            Debug.Assert(!String.IsNullOrEmpty(sNetworkConfigurationFilePath));
            Debug.Assert(oNetworkConfigurationFileParser != null);

            oXmlDocument            = null;
            sNetworkFileFolderPath  = null;
            eNetworkFileFormats     = NetworkFileFormats.None;
            bAutomateNodeXLWorkbook = false;

            String sScreenNameToAnalyze = null;

            TwitterUserNetworkAnalyzer.WhatToInclude eWhatToInclude =
                TwitterUserNetworkAnalyzer.WhatToInclude.None;

            NetworkLevel eNetworkLevel            = NetworkLevel.One;
            Int32        iMaximumPeoplePerRequest = Int32.MaxValue;

            try
            {
                oNetworkConfigurationFileParser.GetTwitterUserNetworkConfiguration(
                    out sScreenNameToAnalyze, out eWhatToInclude,
                    out eNetworkLevel, out iMaximumPeoplePerRequest,
                    out sNetworkFileFolderPath, out eNetworkFileFormats,
                    out bAutomateNodeXLWorkbook);
            }
            catch (XmlException oXmlException)
            {
                // (This call exits the program.)

                OnNetworkConfigurationFileException(oXmlException);
            }

            TwitterUserNetworkAnalyzer oTwitterUserNetworkAnalyzer =
                new TwitterUserNetworkAnalyzer();

            oTwitterUserNetworkAnalyzer.ProgressChanged +=
                new ProgressChangedEventHandler(
                    HttpNetworkAnalyzer_ProgressChanged);

            Console.WriteLine(
                "Getting the Twitter User network specified in \"{0}\".  The"
                + " screen name is \"{1}\"."
                ,
                sNetworkConfigurationFilePath,
                sScreenNameToAnalyze
                );

            try
            {
                oXmlDocument = oTwitterUserNetworkAnalyzer.GetNetwork(
                    sScreenNameToAnalyze, eWhatToInclude, eNetworkLevel,
                    iMaximumPeoplePerRequest);
            }
            catch (PartialNetworkException oPartialNetworkException)
            {
                oXmlDocument = OnGetNetworkPartialNetworkException(oStartTime,
                                                                   oPartialNetworkException, sNetworkConfigurationFilePath,
                                                                   sNetworkFileFolderPath, oTwitterUserNetworkAnalyzer);
            }
            catch (Exception oException)
            {
                // (This call exits the program.)

                OnGetNetworkOtherException(oStartTime, oException,
                                           sNetworkConfigurationFilePath, sNetworkFileFolderPath,
                                           oTwitterUserNetworkAnalyzer);
            }
        }