75 lines
2.3 KiB
C#
75 lines
2.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace Adaptation.Shared.Metrology;
|
|
|
|
public partial class WS
|
|
{
|
|
|
|
public class Results
|
|
{
|
|
|
|
#nullable enable
|
|
|
|
[JsonConstructor]
|
|
public Results(List<string>? errors,
|
|
long? headerId,
|
|
long? subgroupId,
|
|
bool? success,
|
|
List<string>? warnings)
|
|
{
|
|
Errors = errors;
|
|
Success = success;
|
|
HeaderId = headerId;
|
|
Warnings = warnings;
|
|
SubgroupId = subgroupId;
|
|
}
|
|
|
|
[JsonPropertyName("errors")] public List<string>? Errors { get; set; }
|
|
[JsonPropertyName("headerID")] public long? HeaderId { get; set; }
|
|
[JsonPropertyName("subgroupId")] public long? SubgroupId { get; set; }
|
|
[JsonPropertyName("success")] public bool? Success { get; set; }
|
|
[JsonPropertyName("warnings")] public List<string>? Warnings { get; set; }
|
|
|
|
public override string ToString()
|
|
{
|
|
string result = JsonSerializer.Serialize(this, ResultsSourceGenerationContext.Default.Results);
|
|
return result;
|
|
}
|
|
|
|
internal static Results Get(Results results, long? subgroupId) =>
|
|
new(results.Errors, results.HeaderId, subgroupId, results.Success, results.Warnings);
|
|
|
|
internal static Results Get(string resultsJson, Exception e)
|
|
{
|
|
Results results;
|
|
Exception? exception = e;
|
|
List<string> errors = new();
|
|
StringBuilder stringBuilder = new();
|
|
while (exception is not null)
|
|
{
|
|
_ = stringBuilder.AppendLine(exception.Message);
|
|
exception = exception.InnerException;
|
|
}
|
|
errors.Add(resultsJson);
|
|
errors.Add(stringBuilder.ToString());
|
|
results = new(errors: errors,
|
|
headerId: null,
|
|
subgroupId: null,
|
|
success: false,
|
|
warnings: new());
|
|
return results;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
[JsonSourceGenerationOptions(WriteIndented = true)]
|
|
[JsonSerializable(typeof(WS.Results))]
|
|
internal partial class ResultsSourceGenerationContext : JsonSerializerContext
|
|
{
|
|
} |