internal static MetricBoundaryCondition DeserializeMetricBoundaryCondition(JsonElement element)
        {
            Optional <double> lower             = default;
            Optional <double> upper             = default;
            BoundaryDirection direction         = default;
            Optional <string> metricId          = default;
            Optional <bool>   triggerForMissing = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("lower"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    lower = property.Value.GetDouble();
                    continue;
                }
                if (property.NameEquals("upper"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    upper = property.Value.GetDouble();
                    continue;
                }
                if (property.NameEquals("direction"))
                {
                    direction = new BoundaryDirection(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("metricId"))
                {
                    metricId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("triggerForMissing"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    triggerForMissing = property.Value.GetBoolean();
                    continue;
                }
            }
            return(new MetricBoundaryCondition(Optional.ToNullable(lower), Optional.ToNullable(upper), direction, metricId.Value, Optional.ToNullable(triggerForMissing)));
        }
Пример #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MetricBoundaryCondition"/> class.
 /// </summary>
 /// <param name="direction">The direction of the specified boundaries. Depending on its value, <see cref="LowerBound"/> and/or <see cref="UpperBound"/> may be required.</param>
 public MetricBoundaryCondition(BoundaryDirection direction)
 {
     Direction = direction;
 }