fix: surface ntfs create result token errors

This commit is contained in:
Meik
2026-03-10 10:33:57 +01:00
parent c235e37367
commit 8e55b221cf

View File

@@ -591,14 +591,18 @@ namespace LiamWorkflowDiagnostics
}
if (string.IsNullOrWhiteSpace(parentPath))
throw new InvalidOperationException("Parent Folder Path konnte nicht ermittelt werden.");
var ownerSids = ParseIdentifierList(NtfsCreateOwnerSidsTextBox.Text, "Owner SIDs");
if (ownerSids.Count == 0)
throw new InvalidOperationException("Owner SIDs: mindestens ein Eintrag ist fuer die Ordneranlage erforderlich.");
var result = await provider.CreateDataAreaAsync(
var result = EnsureSuccessfulResultToken(await provider.CreateDataAreaAsync(
folderPath,
parentPath,
ParseKeyValueLines(CustomTagsTextBox.Text, "Custom Tags"),
ParseIdentifierList(NtfsCreateOwnerSidsTextBox.Text, "Owner SIDs"),
ownerSids,
ParseIdentifierList(NtfsCreateReaderSidsTextBox.Text, "Reader SIDs"),
ParseIdentifierList(NtfsCreateWriterSidsTextBox.Text, "Writer SIDs"));
ParseIdentifierList(NtfsCreateWriterSidsTextBox.Text, "Writer SIDs")),
"NTFS Folder Create");
return MapResultToken(result);
});
@@ -618,7 +622,7 @@ namespace LiamWorkflowDiagnostics
ParseIdentifierList(NtfsEnsureWriterSidsTextBox.Text, "Writer SIDs"),
NtfsEnsureTraverseCheckBox.IsChecked ?? false);
return MapResultToken(result);
return MapResultToken(EnsureSuccessfulResultToken(result, "NTFS Ensure Groups / ACLs"));
});
}
@@ -910,6 +914,22 @@ namespace LiamWorkflowDiagnostics
};
}
private ResultToken EnsureSuccessfulResultToken(ResultToken token, string actionName)
{
if (token == null)
throw new InvalidOperationException($"{actionName}: kein Ergebnis vom Provider erhalten.");
if (token.resultErrorId != 0)
{
var message = string.IsNullOrWhiteSpace(token.resultMessage)
? "Unbekannter Fehler im Provider."
: token.resultMessage.Trim();
throw new InvalidOperationException($"[{token.resultErrorId}] {message}");
}
return token;
}
private List<object> MapSecurityGroupResults(IEnumerable<Tuple<string, string, string, string>> groups)
{
return (groups ?? Enumerable.Empty<Tuple<string, string, string, string>>())