blob: 2afd10cfad12989e9b4f2a07a29717ef653e7034 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
namespace CommandLineWrapper.JsonResults
{
public abstract class JsonResultGetter<TJsonFormat>
{
protected abstract Task<JVCSCommandInvoker.InvokeResult> ExecCommand(JVCSWorkspace workspace);
public async Task<TJsonFormat?> Get(JVCSWorkspace workspace)
{
var result = await ExecCommand(workspace);
var output = result.StandardOutput;
string trimmedOutput = output?.Trim() ?? "{}";
if (!string.IsNullOrEmpty(trimmedOutput) && trimmedOutput.StartsWith("{") && trimmedOutput.EndsWith("}"))
{
var options = new System.Text.Json.JsonSerializerOptions
{
PropertyNameCaseInsensitive = true,
PropertyNamingPolicy = null,
};
options.Converters.Add(new System.Text.Json.Serialization.JsonStringEnumConverter());
return System.Text.Json.JsonSerializer.Deserialize<TJsonFormat>(trimmedOutput, options);
}
return default(TJsonFormat);
}
}
}
|