internal DeploymentPropertiesExtended(string provisioningState, string correlationId, DateTimeOffset?timestamp, object outputs, IReadOnlyList <Provider> providers, IReadOnlyList <Dependency> dependencies, object template, TemplateLink templateLink, object parameters, ParametersLink parametersLink, DeploymentMode?mode, DebugSetting debugSetting)
 {
     ProvisioningState = provisioningState;
     CorrelationId     = correlationId;
     Timestamp         = timestamp;
     Outputs           = outputs;
     Providers         = providers;
     Dependencies      = dependencies;
     Template          = template;
     TemplateLink      = templateLink;
     Parameters        = parameters;
     ParametersLink    = parametersLink;
     Mode         = mode;
     DebugSetting = debugSetting;
 }
Пример #2
0
        internal static DeploymentPropertiesExtended DeserializeDeploymentPropertiesExtended(JsonElement element)
        {
            string                     provisioningState = default;
            string                     correlationId     = default;
            DateTimeOffset?            timestamp         = default;
            object                     outputs           = default;
            IReadOnlyList <Provider>   providers         = default;
            IReadOnlyList <Dependency> dependencies      = default;
            object                     template          = default;
            TemplateLink               templateLink      = default;
            object                     parameters        = default;
            ParametersLink             parametersLink    = default;
            DeploymentMode?            mode         = default;
            DebugSetting               debugSetting = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("provisioningState"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    provisioningState = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("correlationId"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    correlationId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("timestamp"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    timestamp = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("outputs"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    outputs = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("providers"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    List <Provider> array = new List <Provider>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        if (item.ValueKind == JsonValueKind.Null)
                        {
                            array.Add(null);
                        }
                        else
                        {
                            array.Add(Provider.DeserializeProvider(item));
                        }
                    }
                    providers = array;
                    continue;
                }
                if (property.NameEquals("dependencies"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    List <Dependency> array = new List <Dependency>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        if (item.ValueKind == JsonValueKind.Null)
                        {
                            array.Add(null);
                        }
                        else
                        {
                            array.Add(Dependency.DeserializeDependency(item));
                        }
                    }
                    dependencies = array;
                    continue;
                }
                if (property.NameEquals("template"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    template = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("templateLink"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    templateLink = TemplateLink.DeserializeTemplateLink(property.Value);
                    continue;
                }
                if (property.NameEquals("parameters"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    parameters = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("parametersLink"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    parametersLink = ParametersLink.DeserializeParametersLink(property.Value);
                    continue;
                }
                if (property.NameEquals("mode"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    mode = property.Value.GetString().ToDeploymentMode();
                    continue;
                }
                if (property.NameEquals("debugSetting"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    debugSetting = DebugSetting.DeserializeDebugSetting(property.Value);
                    continue;
                }
            }
            return(new DeploymentPropertiesExtended(provisioningState, correlationId, timestamp, outputs, providers, dependencies, template, templateLink, parameters, parametersLink, mode, debugSetting));
        }