public void FromJson(JObject jRoot) { JToken collectorsToken = jRoot.SelectToken("properties.desired.windows." + SectionName); if (collectorsToken == null || !(collectorsToken is JObject)) { return; } JObject collectorsObject = (JObject)collectorsToken; List <CollectorDesiredState> collectors = new List <CollectorDesiredState>(); foreach (JProperty property in collectorsObject.Children()) { if (property.Name == "?") { if (property.Value is JValue && property.Value.Type == JTokenType.String) { switch ((string)property.Value) { case JsonDetailed: NonDeviceTwinCollectors.SelectedIndex = 0; break; case JsonMinimal: NonDeviceTwinCollectors.SelectedIndex = 1; break; case JsonNone: NonDeviceTwinCollectors.SelectedIndex = 2; break; } } } else { CollectorDesiredState collectorDesiredState = CollectorDesiredState.FromJson(property.Name, property.Value); if (collectorDesiredState != null) { collectors.Add(collectorDesiredState); } } } CollectorsConfigurations = collectors; }
public static CollectorDesiredState FromJson(string collectorName, JToken jValueToken) { if (!(jValueToken is JObject)) { return(null); } JObject jValueObject = (JObject)jValueToken; CollectorDesiredState collectorDesiredState = new CollectorDesiredState(); collectorDesiredState.Name = collectorName; collectorDesiredState.ReportProperties = Utils.GetString(jValueObject, "reportProperties", "yes"); JToken jApplyProperties = Utils.GetJToken(jValueObject, "applyProperties"); if (jApplyProperties is JValue) { collectorDesiredState.ApplyProperties = (string)jApplyProperties; } else if (jApplyProperties is JObject) { collectorDesiredState.ApplyProperties = "yes"; JObject jApplyPropertiesObject = (JObject)jApplyProperties; foreach (JToken token in jApplyPropertiesObject.Children()) { if (!(token is JProperty)) { continue; } JProperty jProperty = (JProperty)token; switch (jProperty.Name) { case "traceLogFileMode": collectorDesiredState.TraceLogFileMode = (string)jProperty.Value; break; case "logFileSizeLimitMB": collectorDesiredState.LogFileSizeLimitMB = (int)jProperty.Value; break; case "logFileFolder": collectorDesiredState.LogFileFolder = (string)jProperty.Value; break; case "logFileName": collectorDesiredState.LogFileName = (string)jProperty.Value; break; case "started": collectorDesiredState.Started = (string)jProperty.Value; break; default: ProviderDesiredState providerDesiredState = ProviderDesiredState.ProviderDesiredStateFromJson(jProperty.Name, jProperty.Value); if (providerDesiredState != null) { if (collectorDesiredState.ProviderList == null) { collectorDesiredState.ProviderList = new List <ProviderDesiredState>(); } collectorDesiredState.ProviderList.Add(providerDesiredState); } break; } } } return(collectorDesiredState); }