From a50fdc4cf544cb08f607caadac27c18c6bc6036f Mon Sep 17 00:00:00 2001 From: Victor Chang Date: Thu, 6 Oct 2022 10:01:40 -0700 Subject: [PATCH 1/4] Update FileExportStatus with additional enum options Signed-off-by: Victor Chang --- src/Messaging/Events/ExportStatus.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Messaging/Events/ExportStatus.cs b/src/Messaging/Events/ExportStatus.cs index 9420c35..d0dc146 100644 --- a/src/Messaging/Events/ExportStatus.cs +++ b/src/Messaging/Events/ExportStatus.cs @@ -31,6 +31,11 @@ public enum FileExportStatus /// Success, + /// + /// Export failed due to configuration error + /// + ConfigurationError, + /// /// File is unsupported /// @@ -41,6 +46,11 @@ public enum FileExportStatus /// ServiceError, + /// + /// Error downloading file from storage service + /// + DownloadError, + /// /// Unknown error /// From ab6781a7dc66ba0741c2a8ec28cb30d2d5be400d Mon Sep 17 00:00:00 2001 From: Victor Chang Date: Thu, 6 Oct 2022 11:34:09 -0700 Subject: [PATCH 2/4] Update ExportCompleteEvent ctor Signed-off-by: Victor Chang --- src/Messaging/Events/ExportCompleteEvent.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Messaging/Events/ExportCompleteEvent.cs b/src/Messaging/Events/ExportCompleteEvent.cs index cf834a2..1af942e 100644 --- a/src/Messaging/Events/ExportCompleteEvent.cs +++ b/src/Messaging/Events/ExportCompleteEvent.cs @@ -54,25 +54,27 @@ public class ExportCompleteEvent : EventBase /// /// Gets or sets files exported with its status /// - [JsonProperty(PropertyName = "files")] - public Dictionary FileStatus { get; set; } + [JsonProperty(PropertyName = "file_statuses")] + public Dictionary FileStatuses { get; set; } [JsonConstructor] public ExportCompleteEvent() { Status = ExportStatus.Unknown; - FileStatus = new Dictionary(); + FileStatuses = new Dictionary(); } - public ExportCompleteEvent(ExportRequestEvent exportRequest, ExportStatus exportStatus) + public ExportCompleteEvent(ExportRequestEvent exportRequest, ExportStatus exportStatus, Dictionary fileStatuses) { Guard.Against.Null(exportRequest, nameof(exportRequest)); Guard.Against.Null(exportStatus, nameof(exportStatus)); + Guard.Against.Null(fileStatuses, nameof(fileStatuses)); WorkflowInstanceId = exportRequest.WorkflowInstanceId; ExportTaskId = exportRequest.ExportTaskId; Message = string.Join(System.Environment.NewLine, exportRequest.ErrorMessages); Status = exportStatus; + FileStatuses = fileStatuses; } } } From 3783c3d2da457fde2082e56c4511f516383cf636 Mon Sep 17 00:00:00 2001 From: Victor Chang Date: Thu, 6 Oct 2022 11:45:10 -0700 Subject: [PATCH 3/4] Fix unit test Signed-off-by: Victor Chang --- src/Messaging/Tests/ExportCompleteEventTest.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Messaging/Tests/ExportCompleteEventTest.cs b/src/Messaging/Tests/ExportCompleteEventTest.cs index 6f0688b..45823b0 100644 --- a/src/Messaging/Tests/ExportCompleteEventTest.cs +++ b/src/Messaging/Tests/ExportCompleteEventTest.cs @@ -54,14 +54,22 @@ public void ShallGenerateExportCompleteMessageTestFromExportRequestMessage() Guid.NewGuid().ToString(), }; + var fileStatus = new Dictionary() + { + {Guid.NewGuid().ToString(), FileExportStatus.Success}, + {Guid.NewGuid().ToString(), FileExportStatus.DownloadError}, + {Guid.NewGuid().ToString(), FileExportStatus.ConfigurationError}, + }; + exportRequestMessage.AddErrorMessages(errors); - var exportCompleteMessage = new ExportCompleteEvent(exportRequestMessage, ExportStatus.Success); + var exportCompleteMessage = new ExportCompleteEvent(exportRequestMessage, ExportStatus.Success, fileStatus); Assert.Equal(exportRequestMessage.WorkflowInstanceId, exportCompleteMessage.WorkflowInstanceId); Assert.Equal(exportRequestMessage.ExportTaskId, exportCompleteMessage.ExportTaskId); Assert.Equal(string.Join(Environment.NewLine, errors), exportCompleteMessage.Message); Assert.Equal(ExportStatus.Success, exportCompleteMessage.Status); + Assert.Equal(fileStatus, exportCompleteMessage.FileStatuses); } [Fact(DisplayName = "Validation shall throw on error")] From 8c7b52b98ddddc3521f671d99b1726e9cc08a3db Mon Sep 17 00:00:00 2001 From: Neil South Date: Tue, 11 Oct 2022 11:17:12 +0100 Subject: [PATCH 4/4] improving logging scope Signed-off-by: Neil South --- .../RabbitMQ/RabbitMqMessagePublisherService.cs | 8 +++++++- .../RabbitMQ/RabbitMqMessageSubscriberService.cs | 15 +++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/Plugins/RabbitMQ/RabbitMqMessagePublisherService.cs b/src/Plugins/RabbitMQ/RabbitMqMessagePublisherService.cs index a0eb267..8139b0f 100644 --- a/src/Plugins/RabbitMQ/RabbitMqMessagePublisherService.cs +++ b/src/Plugins/RabbitMQ/RabbitMqMessagePublisherService.cs @@ -16,6 +16,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics.Tracing; using System.Globalization; using System.Threading.Tasks; using Ardalis.GuardClauses; @@ -99,7 +100,12 @@ public Task Publish(string topic, Message message) Guard.Against.NullOrWhiteSpace(topic, nameof(topic)); Guard.Against.Null(message, nameof(message)); - using var loggerScope = _logger.BeginScope(string.Format(CultureInfo.InvariantCulture, Logger.LoggingScopeMessageApplication, message.MessageId, message.ApplicationId)); + using var loggingScope = _logger.BeginScope(new Dictionary + { + ["MessageId"] = message.MessageId, + ["ApplicationId"] = message.ApplicationId, + ["CorrelationId"] = message.CorrelationId + }); _logger.PublshingRabbitMQ(_endpoint, _virtualHost, _exchange, topic); diff --git a/src/Plugins/RabbitMQ/RabbitMqMessageSubscriberService.cs b/src/Plugins/RabbitMQ/RabbitMqMessageSubscriberService.cs index 5bf2c06..9c85e59 100644 --- a/src/Plugins/RabbitMQ/RabbitMqMessageSubscriberService.cs +++ b/src/Plugins/RabbitMQ/RabbitMqMessageSubscriberService.cs @@ -143,7 +143,12 @@ public void Subscribe(string[] topics, string queue, Action { - using var loggerScope = _logger.BeginScope(string.Format(CultureInfo.InvariantCulture, Logger.LoggingScopeMessageApplication, eventArgs.BasicProperties.MessageId, eventArgs.BasicProperties.AppId)); + using var loggingScope = _logger.BeginScope(new Dictionary + { + ["MessageId"] = eventArgs.BasicProperties.MessageId, + ["ApplicationId"] = eventArgs.BasicProperties.AppId, + ["CorrelationId"] = eventArgs.BasicProperties.CorrelationId + }); _logger.MessageReceivedFromQueue(queueDeclareResult.QueueName, eventArgs.RoutingKey); @@ -200,7 +205,13 @@ public void SubscribeAsync(string[] topics, string queue, Func { - using var loggerScope = _logger.BeginScope(string.Format(CultureInfo.InvariantCulture, Logger.LoggingScopeMessageApplication, eventArgs.BasicProperties.MessageId, eventArgs.BasicProperties.AppId)); + using var loggingScope = _logger.BeginScope(new Dictionary + { + ["MessageId"] = eventArgs.BasicProperties.MessageId, + ["ApplicationId"] = eventArgs.BasicProperties.AppId, + ["CorrelationId"] = eventArgs.BasicProperties.CorrelationId + + }); _logger.MessageReceivedFromQueue(queueDeclareResult.QueueName, eventArgs.RoutingKey);