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);
    }