Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }