AdapterLib.HueBridgeDevice.HueBridgeDevice C# (CSharp) Method

HueBridgeDevice() public method

public HueBridgeDevice ( Q42 client, AdapterLib.HueBridgeDescription desc, AdapterLib.Adapter bridge ) : System
client Q42
desc AdapterLib.HueBridgeDescription
bridge AdapterLib.Adapter
return System
        public HueBridgeDevice(Q42.HueApi.HueClient client, HueBridgeDescription desc, Adapter bridge) : base("PhilipsHue",
            desc.Manufacturer, desc.ModelName, "", desc.SerialNumber, $"{desc.FriendlyName}\n{desc.ModelDescription} ({desc.ModelNumber})")
        {
            _client = client;
            _description = desc;
            _bridge = bridge;

            _enableJoinMethod = new AdapterMethod("Link", "Puts the adapter into join mode", 0);
            _enableJoinMethod.InvokeAction = Link;
            _enableJoinMethod.OutputParams.Add(new AdapterValue("Result", "") { Data = "" });
            Methods.Add(_enableJoinMethod);

           
            //var UpdateMethod = new AdapterMethod("Update", "Looks for any removed or added lights", 0);
            //UpdateMethod.InvokeAction = UpdateDeviceList;
            //Methods.Add(UpdateMethod);

            //Check if bridge is already linked and registered
            bool isLinked = false;
            var container = ApplicationData.Current.LocalSettings.CreateContainer("RegisteredHueBridges", ApplicationDataCreateDisposition.Always);
            if(container.Values.ContainsKey(desc.SerialNumber))
            {
                var key = container.Values[desc.SerialNumber] as string;
                if (key != null)
                {
                    (client as Q42.HueApi.LocalHueClient)?.Initialize(key);
                    isLinked = true;
                    UpdateDeviceList();
                }
            }

            _isLinkedProperty = new AdapterProperty("Link", "com.dotMorten.PhilipsHueDSB.PhilipsHue");
            _isLinkedProperty.Attributes.Add(new AdapterAttribute("IsLinked", isLinked, E_ACCESS_TYPE.ACCESS_READ) { COVBehavior = SignalBehavior.Always });
            this.Properties.Add(_isLinkedProperty);

            if(desc.ModelName.EndsWith(" 2012")) //V1 bridge
               Icon = new AdapterIcon("ms-appx:///AdapterLib/Icons/HueBridge1.png");
            else if (desc.ModelName.EndsWith(" 2015")) //V2 bridge
                Icon = new AdapterIcon("ms-appx:///AdapterLib/Icons/HueBridge2.png");
            else //Fallback - use uri from descriptor
                Icon = new AdapterIcon(desc.IconUri.OriginalString);
            // change of value signal
            CreateSignals();
        }