public static async Task SendMessage <T>(T data) where T : class { if (data is null) { return; } try { var jsonData = await Task.Run(() => JsonConvert.SerializeObject(data)).ConfigureAwait(false); var eventMessage = new Message(Encoding.UTF8.GetBytes(jsonData)); await SendEvent(eventMessage).ConfigureAwait(false); } catch (Exception e) { AppCenterService.Report(e); OnIoTDeviceServiceFailed(e.Message); } }
public static Task <Location> GetLocation() { var tcs = new TaskCompletionSource <Location>(); Device.BeginInvokeOnMainThread(async() => { try { var location = await Geolocation.GetLocationAsync(GeolocationRequest).ConfigureAwait(false); tcs.SetResult(location); } catch (Exception e) { OnGeolocationFailed(e); AppCenterService.Report(e); tcs.SetException(e); } }); return(tcs.Task); }