public override int PerformCommand( ICommandArgument[] Arguments, out ICommandResult CommandResult ) { CommandResult = null; System.UriBuilder searchBinding = new System.UriBuilder(); searchBinding.Scheme = "http"; searchBinding.Host = searchServer; searchBinding.Path = searchRoot; string searchQuery = searchQueryPrefix; for ( int currentArgument = 1; currentArgument < Arguments.Length; currentArgument++ ) { if ( currentArgument > 1 ) { searchQuery += "%20"; } searchQuery += Arguments[currentArgument].GetArgument(); } searchBinding.Query = searchQuery; _Terminal.WriteTo( new StringBuilder( searchBinding.ToString() + "\n\n" ), ConsoleProcessRedirection.OutputType.StandardOutput ); PageCommand pageRetriever = new PageCommand( _CommandProcessor, new NullTerminal() ); ICommandArgument[] showArguments = new ICommandArgument[2]; showArguments[0] = Arguments[0]; showArguments[1] = new CommandArgument( searchBinding.ToString() ); pageRetriever.PerformCommand( showArguments, out CommandResult ); string resultString = ( (StringBuilder) CommandResult.GetArgument() ).ToString(); string[] links = FindLinks( resultString ); foreach ( string link in links ) { _Terminal.WriteTo( new StringBuilder( link + "\n\n" ), ConsoleProcessRedirection.OutputType.StandardOutput ); } return 0; }
public ICommand GetCommand( string CommandName, ICommandProcessor CommandProcessor ) { ICommand NewCommand = null; switch( CommandName ) { case "cd": NewCommand = new ChangeDirCommand( CommandProcessor, _Terminal ); break; case "cwd": NewCommand = new CurrentDirCommand( CommandProcessor, _Terminal ); break; case "exit": NewCommand = new ExitCommand( CommandProcessor, _Terminal ); break; case "prompt": NewCommand = new PromptCommand( CommandProcessor, _Terminal ); break; case "set": NewCommand = new SetCommand( CommandProcessor, _Terminal ); break; case "ver": NewCommand = new VersionCommand( CommandProcessor, _Terminal ); break; case "msn": NewCommand = new MsnCommand( CommandProcessor, _Terminal ); break; case "page": NewCommand = new PageCommand( CommandProcessor, _Terminal ); break; case "showpage": NewCommand = new ShowpageCommand( CommandProcessor, _Terminal ); break; case "textpage": NewCommand = new TextpageCommand( CommandProcessor, _Terminal ); break; } return NewCommand; }