in sdk/notificationhubs/Azure.ResourceManager.NotificationHubs/src/Customization/Models/NotificationHubNamespaceCreateOrUpdateContent.Serialization.cs [168:388]
internal static NotificationHubNamespaceCreateOrUpdateContent DeserializeNotificationHubNamespaceCreateOrUpdateContent(JsonElement element, ModelReaderWriterOptions options = null)
{
options ??= ModelSerializationExtensions.WireOptions;
if (element.ValueKind == JsonValueKind.Null)
{
return null;
}
NotificationHubSku sku = default;
IDictionary<string, string> tags = default;
AzureLocation location = default;
ResourceIdentifier id = default;
string name = default;
ResourceType type = default;
ResourceManager.Models.SystemData systemData = default;
string name0 = default;
string provisioningState = default;
string region = default;
string metricId = default;
string status = default;
DateTimeOffset? createdAt = default;
DateTimeOffset? updatedAt = default;
Uri serviceBusEndpoint = default;
string subscriptionId = default;
string scaleUnit = default;
bool? enabled = default;
bool? critical = default;
string dataCenter = default;
NotificationHubNamespaceType? namespaceType = default;
IDictionary<string, BinaryData> serializedAdditionalRawData = default;
Dictionary<string, BinaryData> rawDataDictionary = new Dictionary<string, BinaryData>();
foreach (var property in element.EnumerateObject())
{
if (property.NameEquals("sku"u8))
{
if (property.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
sku = NotificationHubSku.DeserializeNotificationHubSku(property.Value, options);
continue;
}
if (property.NameEquals("tags"u8))
{
if (property.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
Dictionary<string, string> dictionary = new Dictionary<string, string>();
foreach (var property0 in property.Value.EnumerateObject())
{
dictionary.Add(property0.Name, property0.Value.GetString());
}
tags = dictionary;
continue;
}
if (property.NameEquals("location"u8))
{
location = new AzureLocation(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<ResourceManager.Models.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("name"u8))
{
name0 = property0.Value.GetString();
continue;
}
if (property0.NameEquals("provisioningState"u8))
{
provisioningState = property0.Value.GetString();
continue;
}
if (property0.NameEquals("region"u8))
{
region = property0.Value.GetString();
continue;
}
if (property0.NameEquals("metricId"u8))
{
metricId = property0.Value.GetString();
continue;
}
if (property0.NameEquals("status"u8))
{
status = property0.Value.GetString();
continue;
}
if (property0.NameEquals("createdAt"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
createdAt = property0.Value.GetDateTimeOffset("O");
continue;
}
if (property0.NameEquals("updatedAt"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
updatedAt = property0.Value.GetDateTimeOffset("O");
continue;
}
if (property0.NameEquals("serviceBusEndpoint"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
serviceBusEndpoint = new Uri(property0.Value.GetString());
continue;
}
if (property0.NameEquals("subscriptionId"u8))
{
subscriptionId = property0.Value.GetString();
continue;
}
if (property0.NameEquals("scaleUnit"u8))
{
scaleUnit = property0.Value.GetString();
continue;
}
if (property0.NameEquals("enabled"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
enabled = property0.Value.GetBoolean();
continue;
}
if (property0.NameEquals("critical"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
critical = property0.Value.GetBoolean();
continue;
}
if (property0.NameEquals("dataCenter"u8))
{
dataCenter = property0.Value.GetString();
continue;
}
if (property0.NameEquals("namespaceType"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
namespaceType = property0.Value.GetString().ToNotificationHubNamespaceType();
continue;
}
}
continue;
}
if (options.Format != "W")
{
rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText()));
}
}
serializedAdditionalRawData = rawDataDictionary;
return new NotificationHubNamespaceCreateOrUpdateContent(
id,
name,
type,
systemData,
tags ?? new ChangeTrackingDictionary<string, string>(),
location,
name0,
provisioningState,
region,
metricId,
status,
createdAt,
updatedAt,
serviceBusEndpoint,
subscriptionId,
scaleUnit,
enabled,
critical,
dataCenter,
namespaceType,
sku,
serializedAdditionalRawData);
}