internal static TriggerDependencyReference DeserializeTriggerDependencyReference(JsonElement element)
        {
            if (element.TryGetProperty("type", out JsonElement discriminator))
            {
                switch (discriminator.GetString())
                {
                case "TumblingWindowTriggerDependencyReference": return(TumblingWindowTriggerDependencyReference.DeserializeTumblingWindowTriggerDependencyReference(element));
                }
            }
            TriggerReference referenceTrigger = default;
            string           type             = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("referenceTrigger"))
                {
                    referenceTrigger = TriggerReference.DeserializeTriggerReference(property.Value);
                    continue;
                }
                if (property.NameEquals("type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
            }
            return(new TriggerDependencyReference(type, referenceTrigger));
        }
Beispiel #2
0
        internal static TumblingWindowTriggerDependencyReference DeserializeTumblingWindowTriggerDependencyReference(JsonElement element)
        {
            Optional <string> offset           = default;
            Optional <string> size             = default;
            TriggerReference  referenceTrigger = default;
            string            type             = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("offset"))
                {
                    offset = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("size"))
                {
                    size = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("referenceTrigger"))
                {
                    referenceTrigger = TriggerReference.DeserializeTriggerReference(property.Value);
                    continue;
                }
                if (property.NameEquals("type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
            }
            return(new TumblingWindowTriggerDependencyReference(type, referenceTrigger, offset.Value, size.Value));
        }