internal Product(IList <string> displayNames, int?capacity, string image, ChildProduct child, ConstantProduct constChild, int constInt, string constString, string constStringAsEnum) { DisplayNames = displayNames; Capacity = capacity; Image = image; Child = child; ConstChild = constChild; ConstInt = constInt; ConstString = constString; ConstStringAsEnum = constStringAsEnum; }
public Product(ChildProduct child, ConstantProduct constChild) { if (child == null) { throw new ArgumentNullException(nameof(child)); } if (constChild == null) { throw new ArgumentNullException(nameof(constChild)); } Child = child; ConstChild = constChild; ConstInt = 0; ConstString = "constant"; ConstStringAsEnum = "constant_string_as_enum"; }
internal static Product DeserializeProduct(JsonElement element) { IList <string> displayNames = default; int? capacity = default; string image = default; ChildProduct child = default; ConstantProduct constChild = default; int constInt = default; string constString = default; string constStringAsEnum = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("display_names")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } List <string> array = new List <string>(); foreach (var item in property.Value.EnumerateArray()) { if (item.ValueKind == JsonValueKind.Null) { array.Add(null); } else { array.Add(item.GetString()); } } displayNames = array; continue; } if (property.NameEquals("capacity")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } capacity = property.Value.GetInt32(); continue; } if (property.NameEquals("image")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } image = property.Value.GetString(); continue; } if (property.NameEquals("child")) { child = ChildProduct.DeserializeChildProduct(property.Value); continue; } if (property.NameEquals("constChild")) { constChild = ConstantProduct.DeserializeConstantProduct(property.Value); continue; } if (property.NameEquals("constInt")) { constInt = property.Value.GetInt32(); continue; } if (property.NameEquals("constString")) { constString = property.Value.GetString(); continue; } if (property.NameEquals("constStringAsEnum")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } constStringAsEnum = property.Value.GetString(); continue; } } return(new Product(displayNames, capacity, image, child, constChild, constInt, constString, constStringAsEnum)); }