internal SkuRestriction(SkuRestrictionType?restrictionType, IReadOnlyList <string> values, RestrictionInfo restrictionInfo, SkuRestrictionReasonCode?reasonCode) { RestrictionType = restrictionType; Values = values; RestrictionInfo = restrictionInfo; ReasonCode = reasonCode; }
internal static SkuRestriction DeserializeSkuRestriction(JsonElement element) { Optional <SkuRestrictionType> type = default; Optional <IReadOnlyList <string> > values = default; Optional <RestrictionInfo> restrictionInfo = default; Optional <SkuRestrictionReasonCode> reasonCode = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("type")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } type = new SkuRestrictionType(property.Value.GetString()); continue; } if (property.NameEquals("values")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <string> array = new List <string>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(item.GetString()); } values = array; continue; } if (property.NameEquals("restrictionInfo")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } restrictionInfo = RestrictionInfo.DeserializeRestrictionInfo(property.Value); continue; } if (property.NameEquals("reasonCode")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } reasonCode = new SkuRestrictionReasonCode(property.Value.GetString()); continue; } } return(new SkuRestriction(Optional.ToNullable(type), Optional.ToList(values), restrictionInfo.Value, Optional.ToNullable(reasonCode))); }