private void Link()
{
try
{
var c = _client as Q42.HueApi.LocalHueClient;
var devicename = Windows.Networking.Proximity.PeerFinder.DisplayName;
var registerTask = c.RegisterAsync("AllJoynDSB", devicename);
registerTask.Wait();
var applicationKey = registerTask.Result;
if (applicationKey != null)
{
var container = ApplicationData.Current.LocalSettings.CreateContainer("RegisteredHueBridges", ApplicationDataCreateDisposition.Always);
container.Values[_description.SerialNumber] = applicationKey;
c.Initialize(applicationKey);
UpdateDeviceList();
_isLinkedProperty.Attributes[0].Value.Data = true;
_bridge.SignalChangeOfAttributeValue(this, _isLinkedProperty, _isLinkedProperty.Attributes[0]);
_enableJoinMethod.OutputParams[0].Data = "Bridge registered successfully";
//EnableJoinMethod.SetResult(0);
}
else
{
_enableJoinMethod.OutputParams[0].Data = "No key returned";
//EnableJoinMethod.SetResult(2);
}
}
catch (System.Exception ex)
{
string message;
if (ex is AggregateException)
message = string.Join("\n", ((AggregateException)ex).InnerExceptions.Select(ie => ie.Message).ToArray());
else
message = ex.Message;
System.Diagnostics.Debug.WriteLine(message);
_enableJoinMethod.OutputParams[0].Data = message;
_enableJoinMethod.SetResult(1);
}
}