internal static Usage DeserializeUsage(JsonElement element) { Optional <UsageUnit> unit = default; Optional <int> currentValue = default; Optional <int> limit = default; Optional <UsageName> name = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("unit")) { unit = property.Value.GetString().ToUsageUnit(); continue; } if (property.NameEquals("currentValue")) { currentValue = property.Value.GetInt32(); continue; } if (property.NameEquals("limit")) { limit = property.Value.GetInt32(); continue; } if (property.NameEquals("name")) { name = UsageName.DeserializeUsageName(property.Value); continue; } } return(new Usage(Optional.ToNullable(unit), Optional.ToNullable(currentValue), Optional.ToNullable(limit), name.Value)); }
internal static Usage DeserializeUsage(JsonElement element) { UsageUnit?unit = default; int? currentValue = default; int? limit = default; UsageName name = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("unit")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } unit = property.Value.GetString().ToUsageUnit(); continue; } if (property.NameEquals("currentValue")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } currentValue = property.Value.GetInt32(); continue; } if (property.NameEquals("limit")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } limit = property.Value.GetInt32(); continue; } if (property.NameEquals("name")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } name = UsageName.DeserializeUsageName(property.Value); continue; } } return(new Usage(unit, currentValue, limit, name)); }