internal ParameterDefinitionsValue(ParameterType?type, IList <object> allowedValues, object defaultValue, ParameterDefinitionsValueMetadata metadata) { Type = type; AllowedValues = allowedValues; DefaultValue = defaultValue; Metadata = metadata; }
internal static ParameterDefinitionsValue DeserializeParameterDefinitionsValue(JsonElement element) { ParameterType? type = default; IList <object> allowedValues = default; object defaultValue = default; ParameterDefinitionsValueMetadata metadata = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("type")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } type = new ParameterType(property.Value.GetString()); continue; } if (property.NameEquals("allowedValues")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } List <object> array = new List <object>(); foreach (var item in property.Value.EnumerateArray()) { if (item.ValueKind == JsonValueKind.Null) { array.Add(null); } else { array.Add(item.GetObject()); } } allowedValues = array; continue; } if (property.NameEquals("defaultValue")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } defaultValue = property.Value.GetObject(); continue; } if (property.NameEquals("metadata")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } metadata = ParameterDefinitionsValueMetadata.DeserializeParameterDefinitionsValueMetadata(property.Value); continue; } } return(new ParameterDefinitionsValue(type, allowedValues, defaultValue, metadata)); }