@@ -86,7 +86,7 @@ public PayloadService(
8686 CallingAeTitle = eventPayload . CallingAeTitle ,
8787 Timestamp = eventPayload . Timestamp ,
8888 PatientDetails = patientDetails ,
89- PayloadDeleted = PayloadDeleted . No ,
89+ PayloadDeleted = PayloadDeleted . No
9090 } ;
9191
9292 if ( await _payloadRepository . CreateAsync ( payload ) )
@@ -173,12 +173,12 @@ public async Task<bool> DeletePayloadFromStorageAsync(string payloadId)
173173 throw new MonaiNotFoundException ( $ "Payload with ID: { payloadId } not found") ;
174174 }
175175
176- if ( payload . PayloadDeleted == PayloadDeleted . InProgress )
176+ if ( payload . PayloadDeleted == PayloadDeleted . InProgress || payload . PayloadDeleted == PayloadDeleted . Yes )
177177 {
178- throw new MonaiBadRequestException ( $ "Deletion of files for payload ID: { payloadId } already in progress") ;
178+ throw new MonaiBadRequestException ( $ "Deletion of files for payload ID: { payloadId } already in progress or already deleted ") ;
179179 }
180180
181- // update the payload to in progress before we request deletion form MinIO
181+ // update the payload to in progress before we request deletion from storage
182182 payload . PayloadDeleted = PayloadDeleted . InProgress ;
183183 await _payloadRepository . UpdateAsync ( payload ) ;
184184
@@ -188,12 +188,19 @@ public async Task<bool> DeletePayloadFromStorageAsync(string payloadId)
188188 {
189189 try
190190 {
191- await _storageService . RemoveObjectsAsync ( payload . Bucket , payload . Files . Select ( f => f . Path ) ) ;
191+ // get all objects for the payload in storage to be deleted
192+ var allPayloadObjects = await _storageService . ListObjectsAsync ( payload . Bucket , payloadId , true ) ;
193+
194+ if ( allPayloadObjects . Any ( ) )
195+ {
196+ await _storageService . RemoveObjectsAsync ( payload . Bucket , allPayloadObjects . Select ( o => o . FilePath ) ) ;
197+ }
198+
192199 payload . PayloadDeleted = PayloadDeleted . Yes ;
193200 }
194- catch
201+ catch ( Exception ex )
195202 {
196- _logger . PayloadUpdateFailed ( payloadId ) ;
203+ _logger . PayloadDeleteFailed ( payloadId , ex ) ;
197204 payload . PayloadDeleted = PayloadDeleted . Failed ;
198205 }
199206 finally
0 commit comments