private static DataTransfer ReadDataTransfer(JsonElement jsonElement) { var dataTransfer = new DataTransfer(); foreach (var property in jsonElement.EnumerateObject()) { if (property.NameEquals(DropEffect.EncodedUtf8Bytes)) { dataTransfer.DropEffect = property.Value.GetString() !; } else if (property.NameEquals(EffectAllowed.EncodedUtf8Bytes)) { dataTransfer.EffectAllowed = property.Value.GetString(); } else if (property.NameEquals(Files.EncodedUtf8Bytes)) { dataTransfer.Files = ReadStringArray(property.Value); } else if (property.NameEquals(Items.EncodedUtf8Bytes)) { var value = property.Value; var items = new DataTransferItem[value.GetArrayLength()]; var i = 0; foreach (var item in value.EnumerateArray()) { items[i++] = ReadDataTransferItem(item); } dataTransfer.Items = items; } else if (property.NameEquals(Types.EncodedUtf8Bytes)) { dataTransfer.Types = ReadStringArray(property.Value); } else { throw new JsonException($"Unknown property {property.Name}"); } } return(dataTransfer); }
private static DataTransferItem ReadDataTransferItem(JsonElement jsonElement) { var item = new DataTransferItem(); foreach (var property in jsonElement.EnumerateObject()) { if (property.NameEquals(Kind.EncodedUtf8Bytes)) { item.Kind = property.Value.GetString() !; } else if (property.NameEquals(Type.EncodedUtf8Bytes)) { item.Type = property.Value.GetString() !; } else { throw new JsonException($"Unknown property {property.Name}"); } } return(item); }