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; }