public void Execute(IList <string> args) { if (args == null || !args.Any()) { var result = _cmdCoffeeApi.GetOrders().Result as IEnumerable <dynamic>; _outputWriter.WriteLine(_outputGenerator.GenerateTable(result, new[] { "order key", "product name", "status", "total (usd)", "date created" }, o => o.orderKey, o => o.productName, o => o.status, o => o.total, o => o.dateCreated)); } else { var orderKey = args.FirstOrDefault(); var order = _cmdCoffeeApi.GetOrder(orderKey).Result; if (order != null) { _outputWriter.WriteLine(_outputGenerator.GeneratePairs((IEnumerable <KeyValuePair <string, object> >)order)); return; } _outputWriter.WriteError($"No order found: {orderKey}"); } }