Skip to content

Commit 874e765

Browse files
kenkosmowskiJoTiTu
andauthored
prevent deletion of last batch credential (#319)
* prevent deletion of last batch credential Signed-off-by: kenkosmowski <ken.kosmowski@gmx.de> * remove whitespace Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id> --------- Signed-off-by: kenkosmowski <ken.kosmowski@gmx.de> Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id> Co-authored-by: Johannes Tuerk <johannes.tuerk@lissi.id>
1 parent 8b0feb7 commit 874e765

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/WalletFramework.Oid4Vc/Oid4Vp/Services/Oid4VpClientService.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,10 +281,24 @@ public async Task<Option<Uri>> AcceptAuthorizationRequest(
281281
switch (credential.Credential)
282282
{
283283
case SdJwtRecord { OneTimeUse: true } sdJwtRecord:
284-
await _sdJwtVcHolderService.DeleteAsync(context, sdJwtRecord.GetId());
284+
var credentialSetSdJwtRecords = await _sdJwtVcHolderService.ListAsync(context, sdJwtRecord.GetCredentialSetId());
285+
await credentialSetSdJwtRecords.Match(
286+
async sdJwtRecords =>
287+
{
288+
if (sdJwtRecords.Count() > 1)
289+
await _sdJwtVcHolderService.DeleteAsync(context, sdJwtRecord.GetId());
290+
},
291+
() => Task.CompletedTask);
285292
break;
286293
case MdocRecord { OneTimeUse: true } mDocRecord:
287-
await _mDocStorage.Delete(mDocRecord);
294+
var credentialSetMdocRecords = await _mDocStorage.List(mDocRecord.GetCredentialSetId());
295+
await credentialSetMdocRecords.Match(
296+
async mDocRecords =>
297+
{
298+
if (mDocRecords.Count() > 1)
299+
await _mDocStorage.Delete(mDocRecord);
300+
},
301+
() => Task.CompletedTask);
288302
break;
289303
}
290304
}

0 commit comments

Comments
 (0)