public void SetBridgeConfig(string configJson, out bool isJoinAllowed, out MqttLogLevel logLevel) { var json = JObject.Parse(configJson); var version = json["version"]?.Value <string>(); var coordinator = json["coordinator"]; string coordinatorVersion; var coordinatorType = "zStack"; switch (coordinator?.Type) { case JTokenType.String: { coordinatorVersion = coordinator.Value <string>(); break; } case JTokenType.Object: { coordinatorVersion = coordinator["meta"]?["revision"]?.Value <string>(); coordinatorType = coordinator["type"]?.Value <string>(); break; } default: { coordinatorVersion = default; break; } } var permitJoin = json["permit_join"]?.Value <bool>() ?? false; var logLevel2 = logLevel = json["log_level"]?.ToObject <MqttLogLevel>() ?? MqttLogLevel.Info; isJoinAllowed = permitJoin; Bridge Update(Bridge state) { state = state .WithZigbee2MqttVersion(version) .WithCoordinatorVersion(coordinatorVersion) .WithCoordinatorType(coordinatorType) .WithPermitJoin(permitJoin) .WithLogLevel(logLevel2); return(state); } UpdateState(Update); }
public void SetBridgeConfig(string configJson, out bool isJoinAllowed, out MqttLogLevel logLevel) { var json = JObject.Parse(configJson); var version = json["version"]?.Value <string>(); var coordinator = json["coordinator"]?.Value <string>(); var permitJoin = json["permit_join"]?.Value <bool>() ?? false; var logLevel2 = logLevel = json["log_level"]?.ToObject <MqttLogLevel>() ?? MqttLogLevel.Info; isJoinAllowed = permitJoin; Bridge Update(Bridge state) { state = state .WithZigbee2MqttVersion(version) .WithCoordinatorVersion(coordinator) .WithPermitJoin(permitJoin) .WithLogLevel(logLevel2); return(state); } ImmutableInterlocked.Update(ref _currentState, Update); }