Skip to content

Commit c81c6b6

Browse files
committed
Showcase different AMQP outcomes
Because outcomes other than `Accepted` are not necessarily an error.
1 parent d02542f commit c81c6b6

6 files changed

Lines changed: 81 additions & 14 deletions

File tree

dotnet-amqp/EmitLog/Program.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,22 @@
2626
{
2727
var amqpMessage = new AmqpMessage(Encoding.UTF8.GetBytes(message));
2828
PublishResult pr = await publisher.PublishAsync(amqpMessage);
29-
if (pr.Outcome.State != OutcomeState.Accepted)
29+
switch (pr.Outcome.State)
3030
{
31+
case OutcomeState.Accepted:
32+
break;
33+
case OutcomeState.Released:
34+
Console.Error.WriteLine($"Released message: {pr.Message.BodyAsString()}");
35+
Environment.Exit(1);
36+
break;
37+
case OutcomeState.Rejected:
38+
Console.Error.WriteLine($"[Publisher] Message: {pr.Message.BodyAsString()} rejected with error: {pr.Outcome.Error}");
39+
Environment.Exit(1);
40+
break;
41+
default:
3142
Console.Error.WriteLine($"Unexpected publish outcome: {pr.Outcome.State}");
3243
Environment.Exit(1);
44+
break;
3345
}
3446

3547
Console.WriteLine($" [x] Sent '{message}'");

dotnet-amqp/EmitLogDirect/Program.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,22 @@
2727
{
2828
var amqpMessage = new AmqpMessage(Encoding.UTF8.GetBytes(message));
2929
PublishResult pr = await publisher.PublishAsync(amqpMessage);
30-
if (pr.Outcome.State != OutcomeState.Accepted)
30+
switch (pr.Outcome.State)
3131
{
32+
case OutcomeState.Accepted:
33+
break;
34+
case OutcomeState.Released:
35+
Console.Error.WriteLine($"Released message: {pr.Message.BodyAsString()}");
36+
Environment.Exit(1);
37+
break;
38+
case OutcomeState.Rejected:
39+
Console.Error.WriteLine($"[Publisher] Message: {pr.Message.BodyAsString()} rejected with error: {pr.Outcome.Error}");
40+
Environment.Exit(1);
41+
break;
42+
default:
3243
Console.Error.WriteLine($"Unexpected publish outcome: {pr.Outcome.State}");
3344
Environment.Exit(1);
45+
break;
3446
}
3547

3648
Console.WriteLine($" [x] Sent '{severity}':'{message}'");

dotnet-amqp/EmitLogTopic/Program.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,22 @@
2727
{
2828
var amqpMessage = new AmqpMessage(Encoding.UTF8.GetBytes(message));
2929
PublishResult pr = await publisher.PublishAsync(amqpMessage);
30-
if (pr.Outcome.State != OutcomeState.Accepted)
30+
switch (pr.Outcome.State)
3131
{
32+
case OutcomeState.Accepted:
33+
break;
34+
case OutcomeState.Released:
35+
Console.Error.WriteLine($"Released message: {pr.Message.BodyAsString()}");
36+
Environment.Exit(1);
37+
break;
38+
case OutcomeState.Rejected:
39+
Console.Error.WriteLine($"[Publisher] Message: {pr.Message.BodyAsString()} rejected with error: {pr.Outcome.Error}");
40+
Environment.Exit(1);
41+
break;
42+
default:
3243
Console.Error.WriteLine($"Unexpected publish outcome: {pr.Outcome.State}");
3344
Environment.Exit(1);
45+
break;
3446
}
3547

3648
Console.WriteLine($" [x] Sent '{routingKey}':'{message}'");

dotnet-amqp/NewTask/Program.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,22 @@
2626
{
2727
var amqpMessage = new AmqpMessage(Encoding.UTF8.GetBytes(message));
2828
PublishResult pr = await publisher.PublishAsync(amqpMessage);
29-
if (pr.Outcome.State != OutcomeState.Accepted)
29+
switch (pr.Outcome.State)
3030
{
31+
case OutcomeState.Accepted:
32+
break;
33+
case OutcomeState.Released:
34+
Console.Error.WriteLine($"Released message: {pr.Message.BodyAsString()}");
35+
Environment.Exit(1);
36+
break;
37+
case OutcomeState.Rejected:
38+
Console.Error.WriteLine($"[Publisher] Message: {pr.Message.BodyAsString()} rejected with error: {pr.Outcome.Error}");
39+
Environment.Exit(1);
40+
break;
41+
default:
3142
Console.Error.WriteLine($"Unexpected publish outcome: {pr.Outcome.State}");
3243
Environment.Exit(1);
44+
break;
3345
}
3446

3547
Console.WriteLine($" [x] Sent '{message}'");

dotnet-amqp/PublisherConfirms/Program.cs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,23 @@
3838
{
3939
const string text = "hello";
4040
PublishResult pr = await publisher.PublishAsync(new AmqpMessage(Encoding.UTF8.GetBytes(text)));
41-
switch (pr.Outcome.State) {
41+
switch (pr.Outcome.State)
42+
{
4243
case OutcomeState.Accepted:
43-
Console.WriteLine($" Accepted Message: {pr.Message.BodyAsString()} confirmed");
44-
break;
45-
case OutcomeState.Released: // here the message is not routed
46-
Console.WriteLine($" Released Message: {pr.Message.BodyAsString()} Released");
47-
break;
48-
case OutcomeState.Rejected: // here there is also the error: `pr.Outcome.Error`
49-
Console.WriteLine($"[Publisher] Message: {pr.Message.BodyAsString()} Rejected with error: {pr.Outcome.Error}");
50-
break;
44+
Console.WriteLine($" Accepted Message: {pr.Message.BodyAsString()} confirmed");
45+
break;
46+
case OutcomeState.Released:
47+
Console.Error.WriteLine($"Released message: {pr.Message.BodyAsString()}");
48+
Environment.Exit(1);
49+
break;
50+
case OutcomeState.Rejected:
51+
Console.Error.WriteLine($"[Publisher] Message: {pr.Message.BodyAsString()} rejected with error: {pr.Outcome.Error}");
52+
Environment.Exit(1);
53+
break;
54+
default:
55+
Console.Error.WriteLine($"Unexpected publish outcome: {pr.Outcome.State}");
56+
Environment.Exit(1);
57+
break;
5158
}
5259

5360
await Task.Delay(500);

dotnet-amqp/Send/Program.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,22 @@
2424
const string body = "Hello World!";
2525
var message = new AmqpMessage(Encoding.UTF8.GetBytes(body));
2626
PublishResult pr = await publisher.PublishAsync(message);
27-
if (pr.Outcome.State != OutcomeState.Accepted)
27+
switch (pr.Outcome.State)
2828
{
29+
case OutcomeState.Accepted:
30+
break;
31+
case OutcomeState.Released:
32+
Console.Error.WriteLine($"Released message: {pr.Message.BodyAsString()}");
33+
Environment.Exit(1);
34+
break;
35+
case OutcomeState.Rejected:
36+
Console.Error.WriteLine($"[Publisher] Message: {pr.Message.BodyAsString()} rejected with error: {pr.Outcome.Error}");
37+
Environment.Exit(1);
38+
break;
39+
default:
2940
Console.Error.WriteLine($"Unexpected publish outcome: {pr.Outcome.State}");
3041
Environment.Exit(1);
42+
break;
3143
}
3244

3345
Console.WriteLine($" [x] Sent {body}");

0 commit comments

Comments
 (0)