internal static ExitCodeRangeMapping DeserializeExitCodeRangeMapping(JsonElement element)
        {
            int         start       = default;
            int         end         = default;
            ExitOptions exitOptions = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("start"))
                {
                    start = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("end"))
                {
                    end = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("exitOptions"))
                {
                    exitOptions = ExitOptions.DeserializeExitOptions(property.Value);
                    continue;
                }
            }
            return(new ExitCodeRangeMapping(start, end, exitOptions));
        }
示例#2
0
        internal static ExitCodeMapping DeserializeExitCodeMapping(JsonElement element)
        {
            int         code        = default;
            ExitOptions exitOptions = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("code"))
                {
                    code = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("exitOptions"))
                {
                    exitOptions = ExitOptions.DeserializeExitOptions(property.Value);
                    continue;
                }
            }
            return(new ExitCodeMapping(code, exitOptions));
        }
        internal static ExitConditions DeserializeExitConditions(JsonElement element)
        {
            IList <ExitCodeMapping>      exitCodes      = default;
            IList <ExitCodeRangeMapping> exitCodeRanges = default;
            ExitOptions preProcessingError = default;
            ExitOptions fileUploadError    = default;
            ExitOptions @default           = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("exitCodes"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    List <ExitCodeMapping> array = new List <ExitCodeMapping>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(ExitCodeMapping.DeserializeExitCodeMapping(item));
                    }
                    exitCodes = array;
                    continue;
                }
                if (property.NameEquals("exitCodeRanges"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    List <ExitCodeRangeMapping> array = new List <ExitCodeRangeMapping>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(ExitCodeRangeMapping.DeserializeExitCodeRangeMapping(item));
                    }
                    exitCodeRanges = array;
                    continue;
                }
                if (property.NameEquals("preProcessingError"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    preProcessingError = ExitOptions.DeserializeExitOptions(property.Value);
                    continue;
                }
                if (property.NameEquals("fileUploadError"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    fileUploadError = ExitOptions.DeserializeExitOptions(property.Value);
                    continue;
                }
                if (property.NameEquals("default"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    @default = ExitOptions.DeserializeExitOptions(property.Value);
                    continue;
                }
            }
            return(new ExitConditions(exitCodes, exitCodeRanges, preProcessingError, fileUploadError, @default));
        }