Skip to content

Commit 87d2e8a

Browse files
committed
Display peeked messages as JSON or Konsole forms
1 parent 6ce5206 commit 87d2e8a

File tree

2 files changed

+29
-14
lines changed

2 files changed

+29
-14
lines changed

src/InEngine.Core/Queue/Broker.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public bool Consume()
101101
return true;
102102
}
103103

104-
public ICommand ExtractCommandInstanceFromMessage(Message message)
104+
public static ICommand ExtractCommandInstanceFromMessage(Message message)
105105
{
106106
var commandType = Type.GetType($"{message.CommandClassName}, {message.CommandAssemblyName}");
107107
if (commandType == null)

src/InEngine.Core/Queue/Commands/Peek.cs

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
24
using CommandLine;
35
using InEngine.Core.Exceptions;
46
using Konsole;
@@ -38,20 +40,33 @@ public override void Run()
3840
var from = Offset;
3941
var to = Offset + Limit - 1;
4042
if (PendingQueue) {
41-
Warning("Pending:");
42-
var konsoleForm = new Form(120, new ThinBoxStyle());
43-
broker.PeekPendingMessages(from, to).ForEach(x => {
44-
var message = x as Message;
45-
if (JsonFormat)
46-
Line(message.SerializeToJson());
47-
else
48-
konsoleForm.Write(broker.ExtractCommandInstanceFromMessage(message));
49-
});
43+
PrintMessages(broker.PeekPendingMessages(from, to), "Pending");
5044
}
51-
if (InProgressQueue)
52-
Info($"In-progress: {broker.PeekInProgressMessages(from, to).ToString()}");
53-
if (FailedQueue)
54-
Info($"Failed: {broker.PeekFailedMessages(from, to).ToString()}");
45+
if (InProgressQueue) {
46+
PrintMessages(broker.PeekInProgressMessages(from, to), "In-progress");
47+
}
48+
if (FailedQueue) {
49+
PrintMessages(broker.PeekFailedMessages(from, to), "Failed");
50+
}
51+
}
52+
53+
public void PrintMessages(List<Message> messages, string queueName)
54+
{
55+
WarningText($"{queueName}:");
56+
if (!messages.Any()) {
57+
Line(" no messages available.");
58+
}
59+
60+
Newline();
61+
62+
var konsoleForm = new Form(120, new ThinBoxStyle());
63+
messages.ForEach(x => {
64+
var message = x as Message;
65+
if (JsonFormat)
66+
Line(message.SerializeToJson());
67+
else
68+
konsoleForm.Write(Broker.ExtractCommandInstanceFromMessage(message));
69+
});
5570
}
5671
}
5772
}

0 commit comments

Comments
 (0)