public bool ReadCommand() { this.RefreshDisplay(); this.ShowMenu(); var keyChar = Logger.ReadKey(true); var selectedMenuItem = menu.SingleOrDefault(item => item.MatchesKey(keyChar)); if (selectedMenuItem == null) { menuSelectionHandler = new InvalidMenuSelectionHandler(); return(true); } if (selectedMenuItem.IsTerminalCommand) { return(false); } menuSelectionHandler = new ValidMenuSelectionHandler( selectedMenuItem.Command, viewLocator, Render); return(true); }
public UserInterface(ViewLocator viewLocator) { menuSelectionHandler = new EmptyMenuSelectionHandler(); this.viewLocator = viewLocator; this.menu = new[] { MenuItem.CreateNonTerminal( "Get Intrument by Id", 'I', new GetInstrumentCommand(), () => true), MenuItem.CreateNonTerminal( "Get Position by Id", 'P', new GetPositionCommand(), () => true), MenuItem.CreateTerminal("Quit", 'Q') }; }