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); }
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); } }