public static int RunVerb(ListOption option) { // send to server Request request = new Request(option.GetVerb()); string res = KemiD.SendRequest(request); Console.WriteLine("Before pretty printing"); Console.WriteLine(res); ListCommandResponse listCommandResponse = JsonConvert.DeserializeObject <ListCommandResponse>(res); PrettyPrintManager.PrintTable(listCommandResponse.TableHeaders.ToList(), listCommandResponse.TableRows, ConsoleColor.Red); // TODO implement pretty-printing return(0); }
public void ListProcesses() { var runningProcessesDetails = new List <object>(); List <string[]> runningProcessesData = new List <string[]>(); foreach (int processId in runningProcesses) { string[] processProps = { runningProcesses.IndexOf(processId).ToString(), "name", processId.ToString() }; runningProcessesData.Add(processProps); runningProcessesDetails.Add(processId); } var response = new { status = "success", processes = runningProcessesData }; IEnumerable <string> columns = new[] { "appID", "appName", "processNumber" }; var res = new ListCommandResponse(ResponseCode.SUCCESS, columns, runningProcessesData); socketManager.SendResponse(JsonConvert.SerializeObject(res)); }
/// <summary> /// List command -- writes directory files listing to writer stream. /// </summary> /// <remarks> /// Output format: /// {number of files} ({file name} {is file dir})... /// If directory does not exist writes -1. /// </remarks> /// <param name="path">Path to directory.</param> /// <param name="writer">Request network stream writer.</param> /// <returns>Task.</returns> public static async Task ListCommand(string path, StreamWriter writer) { if (!Directory.Exists(path)) { await writer.WriteLineAsync("-1"); await writer.FlushAsync(); return; } var files = Directory.GetFiles(path); var directories = Directory.GetDirectories(path); var response = new ListCommandResponse( files.Select(file => new FileResponse(file, false)) .Concat(directories.Select(directory => new FileResponse(directory, true))) .ToList() ); await writer.WriteLineAsync(response.ToString()); await writer.FlushAsync(); }