@@ -87,6 +87,7 @@ public PayloadService(
8787 Timestamp = eventPayload . Timestamp ,
8888 PatientDetails = patientDetails ,
8989 PayloadDeleted = PayloadDeleted . No ,
90+ Files = eventPayload . Payload . ToList ( )
9091 } ;
9192
9293 if ( await _payloadRepository . CreateAsync ( payload ) )
@@ -173,12 +174,12 @@ public async Task<bool> DeletePayloadFromStorageAsync(string payloadId)
173174 throw new MonaiNotFoundException ( $ "Payload with ID: { payloadId } not found") ;
174175 }
175176
176- if ( payload . PayloadDeleted == PayloadDeleted . InProgress )
177+ if ( payload . PayloadDeleted == PayloadDeleted . InProgress || payload . PayloadDeleted == PayloadDeleted . Yes )
177178 {
178- throw new MonaiBadRequestException ( $ "Deletion of files for payload ID: { payloadId } already in progress") ;
179+ throw new MonaiBadRequestException ( $ "Deletion of files for payload ID: { payloadId } already in progress or already deleted ") ;
179180 }
180181
181- // update the payload to in progress before we request deletion form MinIO
182+ // update the payload to in progress before we request deletion from storage
182183 payload . PayloadDeleted = PayloadDeleted . InProgress ;
183184 await _payloadRepository . UpdateAsync ( payload ) ;
184185
@@ -188,12 +189,19 @@ public async Task<bool> DeletePayloadFromStorageAsync(string payloadId)
188189 {
189190 try
190191 {
191- await _storageService . RemoveObjectsAsync ( payload . Bucket , payload . Files . Select ( f => f . Path ) ) ;
192+ // get all objects for the payload in storage to be deleted
193+ var allPayloadObjects = await _storageService . ListObjectsAsync ( payload . Bucket , payloadId , true ) ;
194+
195+ if ( allPayloadObjects . Any ( ) )
196+ {
197+ await _storageService . RemoveObjectsAsync ( payload . Bucket , allPayloadObjects . Select ( o => o . FilePath ) ) ;
198+ }
199+
192200 payload . PayloadDeleted = PayloadDeleted . Yes ;
193201 }
194- catch
202+ catch ( Exception ex )
195203 {
196- _logger . PayloadUpdateFailed ( payloadId ) ;
204+ _logger . PayloadDeleteFailed ( payloadId , ex ) ;
197205 payload . PayloadDeleted = PayloadDeleted . Failed ;
198206 }
199207 finally
0 commit comments