internal static ProcessorNodeBase DeserializeProcessorNodeBase(JsonElement element) { if (element.TryGetProperty("@type", out JsonElement discriminator)) { switch (discriminator.GetString()) { case "#Microsoft.VideoAnalyzer.CognitiveServicesVisionProcessor": return(CognitiveServicesVisionProcessor.DeserializeCognitiveServicesVisionProcessor(element)); case "#Microsoft.VideoAnalyzer.ExtensionProcessorBase": return(ExtensionProcessorBase.DeserializeExtensionProcessorBase(element)); case "#Microsoft.VideoAnalyzer.GrpcExtension": return(GrpcExtension.DeserializeGrpcExtension(element)); case "#Microsoft.VideoAnalyzer.HttpExtension": return(HttpExtension.DeserializeHttpExtension(element)); case "#Microsoft.VideoAnalyzer.LineCrossingProcessor": return(LineCrossingProcessor.DeserializeLineCrossingProcessor(element)); case "#Microsoft.VideoAnalyzer.MotionDetectionProcessor": return(MotionDetectionProcessor.DeserializeMotionDetectionProcessor(element)); case "#Microsoft.VideoAnalyzer.ObjectTrackingProcessor": return(ObjectTrackingProcessor.DeserializeObjectTrackingProcessor(element)); case "#Microsoft.VideoAnalyzer.SignalGateProcessor": return(SignalGateProcessor.DeserializeSignalGateProcessor(element)); } } string type = default; string name = default; IList <NodeInput> inputs = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("@type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("inputs")) { List <NodeInput> array = new List <NodeInput>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(NodeInput.DeserializeNodeInput(item)); } inputs = array; continue; } } return(new ProcessorNodeBase(type, name, inputs)); }
internal static ExtensionProcessorBase DeserializeExtensionProcessorBase(JsonElement element) { if (element.TryGetProperty("@type", out JsonElement discriminator)) { switch (discriminator.GetString()) { case "#Microsoft.VideoAnalyzer.GrpcExtension": return(GrpcExtension.DeserializeGrpcExtension(element)); case "#Microsoft.VideoAnalyzer.HttpExtension": return(HttpExtension.DeserializeHttpExtension(element)); } } EndpointBase endpoint = default; ImageProperties image = default; Optional <SamplingOptions> samplingOptions = default; string type = default; string name = default; IList <NodeInput> inputs = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("endpoint")) { endpoint = EndpointBase.DeserializeEndpointBase(property.Value); continue; } if (property.NameEquals("image")) { image = ImageProperties.DeserializeImageProperties(property.Value); continue; } if (property.NameEquals("samplingOptions")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } samplingOptions = SamplingOptions.DeserializeSamplingOptions(property.Value); continue; } if (property.NameEquals("@type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("inputs")) { List <NodeInput> array = new List <NodeInput>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(NodeInput.DeserializeNodeInput(item)); } inputs = array; continue; } } return(new ExtensionProcessorBase(type, name, inputs, endpoint, image, samplingOptions.Value)); }