in sdk/websites/Azure.ResourceManager.AppService/src/Customization/ProcessThreadInfo.Serialization.cs [147:318]
internal static ProcessThreadInfo DeserializeProcessThreadInfo(JsonElement element, ModelReaderWriterOptions options = null)
{
options ??= ModelSerializationExtensions.WireOptions;
if (element.ValueKind == JsonValueKind.Null)
{
return null;
}
string kind = default;
ResourceIdentifier id = default;
string name = default;
ResourceType type = default;
SystemData systemData = default;
int? identifier = default;
string href = default;
string process = default;
string startAddress = default;
int? currentPriority = default;
string priorityLevel = default;
int? basePriority = default;
DateTimeOffset? startTime = default;
string totalProcessorTime = default;
string userProcessorTime = default;
string state = default;
string waitReason = default;
IDictionary<string, BinaryData> serializedAdditionalRawData = default;
Dictionary<string, BinaryData> rawDataDictionary = new Dictionary<string, BinaryData>();
foreach (var property in element.EnumerateObject())
{
if (property.NameEquals("kind"u8))
{
kind = property.Value.GetString();
continue;
}
if (property.NameEquals("id"u8))
{
id = new ResourceIdentifier(property.Value.GetString());
continue;
}
if (property.NameEquals("name"u8))
{
name = property.Value.GetString();
continue;
}
if (property.NameEquals("type"u8))
{
type = new ResourceType(property.Value.GetString());
continue;
}
if (property.NameEquals("systemData"u8))
{
if (property.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
systemData = JsonSerializer.Deserialize<SystemData>(property.Value.GetRawText());
continue;
}
if (property.NameEquals("properties"u8))
{
if (property.Value.ValueKind == JsonValueKind.Null)
{
property.ThrowNonNullablePropertyIsNull();
continue;
}
foreach (var property0 in property.Value.EnumerateObject())
{
if (property0.NameEquals("identifier"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
identifier = property0.Value.GetInt32();
continue;
}
if (property0.NameEquals("href"u8))
{
href = property0.Value.GetString();
continue;
}
if (property0.NameEquals("process"u8))
{
process = property0.Value.GetString();
continue;
}
if (property0.NameEquals("start_address"u8))
{
startAddress = property0.Value.GetString();
continue;
}
if (property0.NameEquals("current_priority"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
currentPriority = property0.Value.GetInt32();
continue;
}
if (property0.NameEquals("priority_level"u8))
{
priorityLevel = property0.Value.GetString();
continue;
}
if (property0.NameEquals("base_priority"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
basePriority = property0.Value.GetInt32();
continue;
}
if (property0.NameEquals("start_time"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
startTime = property0.Value.GetDateTimeOffset("O");
continue;
}
if (property0.NameEquals("total_processor_time"u8))
{
totalProcessorTime = property0.Value.GetString();
continue;
}
if (property0.NameEquals("user_processor_time"u8))
{
userProcessorTime = property0.Value.GetString();
continue;
}
if (property0.NameEquals("state"u8))
{
state = property0.Value.GetString();
continue;
}
if (property0.NameEquals("wait_reason"u8))
{
waitReason = property0.Value.GetString();
continue;
}
}
continue;
}
if (options.Format != "W")
{
rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText()));
}
}
serializedAdditionalRawData = rawDataDictionary;
return new ProcessThreadInfo(
id,
name,
type,
systemData,
identifier,
href,
process,
startAddress,
currentPriority,
priorityLevel,
basePriority,
startTime,
totalProcessorTime,
userProcessorTime,
state,
waitReason,
kind,
serializedAdditionalRawData);
}