示例#1
0
        internal static AutoTargetRollingWindowSize DeserializeAutoTargetRollingWindowSize(JsonElement element)
        {
            TargetRollingWindowSizeMode mode = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("mode"))
                {
                    mode = new TargetRollingWindowSizeMode(property.Value.GetString());
                    continue;
                }
            }
            return(new AutoTargetRollingWindowSize(mode));
        }
示例#2
0
        internal static CustomTargetRollingWindowSize DeserializeCustomTargetRollingWindowSize(JsonElement element)
        {
            int value = default;
            TargetRollingWindowSizeMode mode = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("value"))
                {
                    value = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("mode"))
                {
                    mode = new TargetRollingWindowSizeMode(property.Value.GetString());
                    continue;
                }
            }
            return(new CustomTargetRollingWindowSize(mode, value));
        }
示例#3
0
        internal static TargetRollingWindowSize DeserializeTargetRollingWindowSize(JsonElement element)
        {
            if (element.TryGetProperty("mode", out JsonElement discriminator))
            {
                switch (discriminator.GetString())
                {
                case "Auto": return(AutoTargetRollingWindowSize.DeserializeAutoTargetRollingWindowSize(element));

                case "Custom": return(CustomTargetRollingWindowSize.DeserializeCustomTargetRollingWindowSize(element));
                }
            }
            TargetRollingWindowSizeMode mode = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("mode"))
                {
                    mode = new TargetRollingWindowSizeMode(property.Value.GetString());
                    continue;
                }
            }
            return(new TargetRollingWindowSize(mode));
        }