in sdk/notificationhubs/Azure.ResourceManager.NotificationHubs/src/Customization/Models/NotificationHubPatch.Serialization.cs [148:346]
internal static NotificationHubPatch DeserializeNotificationHubPatch(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;
TimeSpan? registrationTtl = default;
IList<SharedAccessAuthorizationRuleProperties> authorizationRules = default;
NotificationHubApnsCredential apnsCredential = default;
NotificationHubWnsCredential wnsCredential = default;
NotificationHubGcmCredential gcmCredential = default;
NotificationHubMpnsCredential mpnsCredential = default;
NotificationHubAdmCredential admCredential = default;
NotificationHubBaiduCredential baiduCredential = 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("registrationTtl"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
registrationTtl = property0.Value.GetTimeSpan("c");
continue;
}
if (property0.NameEquals("authorizationRules"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
List<SharedAccessAuthorizationRuleProperties> array = new List<SharedAccessAuthorizationRuleProperties>();
foreach (var item in property0.Value.EnumerateArray())
{
array.Add(SharedAccessAuthorizationRuleProperties.DeserializeSharedAccessAuthorizationRuleProperties(item, options));
}
authorizationRules = array;
continue;
}
if (property0.NameEquals("apnsCredential"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
apnsCredential = NotificationHubApnsCredential.DeserializeNotificationHubApnsCredential(property0.Value, options);
continue;
}
if (property0.NameEquals("wnsCredential"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
wnsCredential = NotificationHubWnsCredential.DeserializeNotificationHubWnsCredential(property0.Value, options);
continue;
}
if (property0.NameEquals("gcmCredential"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
gcmCredential = NotificationHubGcmCredential.DeserializeNotificationHubGcmCredential(property0.Value, options);
continue;
}
if (property0.NameEquals("mpnsCredential"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
mpnsCredential = NotificationHubMpnsCredential.DeserializeNotificationHubMpnsCredential(property0.Value, options);
continue;
}
if (property0.NameEquals("admCredential"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
admCredential = NotificationHubAdmCredential.DeserializeNotificationHubAdmCredential(property0.Value, options);
continue;
}
if (property0.NameEquals("baiduCredential"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
baiduCredential = NotificationHubBaiduCredential.DeserializeNotificationHubBaiduCredential(property0.Value, options);
continue;
}
}
continue;
}
if (options.Format != "W")
{
rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText()));
}
}
serializedAdditionalRawData = rawDataDictionary;
return new NotificationHubPatch(
id,
name,
type,
systemData,
tags ?? new ChangeTrackingDictionary<string, string>(),
location,
name0,
registrationTtl,
authorizationRules ?? new ChangeTrackingList<SharedAccessAuthorizationRuleProperties>(),
apnsCredential,
wnsCredential,
gcmCredential,
mpnsCredential,
admCredential,
baiduCredential,
sku,
serializedAdditionalRawData);
}