diff --git a/src/Api/Storage/Payload.cs b/src/Api/Storage/Payload.cs old mode 100644 new mode 100755 index 800832aa2..97a976ac5 --- a/src/Api/Storage/Payload.cs +++ b/src/Api/Storage/Payload.cs @@ -40,7 +40,12 @@ public enum PayloadState /// /// Payload is ready to be published to the message broker. /// - Notify + Notify, + + /// + /// Payload has finished uploading. + /// + UploadComplete } public const int MAX_RETRY = 3; @@ -89,7 +94,7 @@ public TimeSpan Elapsed public int FilesFailedToUpload { get => Files.Count(p => p.IsUploadFailed); } public Payload(string key, string correlationId, string? workflowInstanceId, string? taskId, - DataOrigin dataTrigger, uint timeout, PatientDetails? patientDetails) : this(key, correlationId, workflowInstanceId, taskId, dataTrigger, timeout) + DataOrigin dataTrigger, uint timeout, PatientDetails? patientDetails) : this(key, correlationId, workflowInstanceId, taskId, dataTrigger, timeout) { if (patientDetails is not null) { @@ -97,7 +102,6 @@ public Payload(string key, string correlationId, string? workflowInstanceId, str } } - public Payload(string key, string correlationId, string? workflowInstanceId, string? taskId, DataOrigin dataTrigger, uint timeout) { Guard.Against.NullOrWhiteSpace(key, nameof(key)); diff --git a/src/InformaticsGateway/Services/Connectors/PayloadNotificationActionHandler.cs b/src/InformaticsGateway/Services/Connectors/PayloadNotificationActionHandler.cs index ef8f8960f..737a9cb6e 100755 --- a/src/InformaticsGateway/Services/Connectors/PayloadNotificationActionHandler.cs +++ b/src/InformaticsGateway/Services/Connectors/PayloadNotificationActionHandler.cs @@ -93,9 +93,13 @@ private async Task DeletePayload(Payload payload, CancellationToken cancellation { Guard.Against.Null(payload, nameof(payload)); + // NDS removed delete, replaced with new status of complete. so we can query the payload data from WFM + // TODO add config and cleanup methods that run on background thread/process + var scope = _serviceScopeFactory.CreateScope(); var repository = scope.ServiceProvider.GetService() ?? throw new ServiceNotFoundException(nameof(IPayloadRepository)); - await repository.RemoveAsync(payload, cancellationToken).ConfigureAwait(false); + payload.State = Payload.PayloadState.UploadComplete; + await repository.UpdateAsync(payload, cancellationToken).ConfigureAwait(false); } private async Task NotifyPayloadReady(Payload payload)