public async Task <YNCEndpointStatus> AddBeaconRegistration(String jsonBeacons) { HttpResponseMessage response; try { response = await PerformPOSTRequestJSONWithToken("/registration", jsonBeacons); String responseContent = response.Content.ReadAsStringAsync().Result; YNCEndpointStatus status = CheckAuthFailure(response); if (_verboseMode) { Debug.WriteLine("JSON request: " + jsonBeacons); } Debug.WriteLine("Token: " + _authToken); Debug.WriteLine(responseContent); if (status != YNCEndpointStatus.OK) { return(status); } return(YNCEndpointStatus.OK); } catch (Exception ex) { if (_verboseMode) { Debug.WriteLine(ex.Message); } return(YNCEndpointStatus.UnexpectedHttpError); } }
public async void ActivateBluetooth(object sender, EventArgs e) { if (_beaconDiscovery == null) { return; } ((Button)sender).IsEnabled = false; await RequestPermissions(); ((Button)sender).Text += "..."; try { await _beaconDiscovery.PerformSingleScan(); } catch (System.NullReferenceException) { _beaconDiscovery.Disable(); await DisplayAlert("Fout", "Er is een onbekende fout opgetreden!", "OK"); ((Button)sender).IsEnabled = true; return; } var result = _beaconDiscovery.GetLatestScanResult(); var beacons = new ObservableCollection <Beacon>(); foreach (Beacon b in result) { if (b.BeaconType != Beacon.BeaconTypeEnum.Unknown && b.BeaconFrames.Count > 0) { beacons.Add(b); } } if (beacons.Count > 0) { String str = "Er zijn " + beacons.Count + " beacons gevonden:\n"; BeaconJSON beaconInJson = new BeaconJSON(); foreach (Beacon b in beacons) { beaconInJson.Add(GetBeaconUUID(b), b.Rssi); str += " - " + GetBeaconUUID(b); str += " RSSI: " + b.Rssi.ToString(); str += "\n"; } try { String json = beaconInJson.ParseJson(); var yncEndpoint = RootWorkItem.Services.Get <YNCEndpoint>(); if (yncEndpoint == null) { await DisplayAlert("Fout", "Er is een onbekende fout opgetreden! Probeer het later opnieuw.", "OK"); return; } YNCEndpointStatus endpointStatus = await yncEndpoint.AddBeaconRegistration(json); switch (endpointStatus) { case YNCEndpointStatus.OK: await DisplayAlert("Succes", "Geregistreerd!", "OK"); break; case YNCEndpointStatus.NoYNCBeaconsFound: await DisplayAlert("Fout", "Er zijn geen beacons van Academy Attendance gevonden!", "OK"); break; case YNCEndpointStatus.AuthFailed: await DisplayAlert("Autorisatie fout", "Er is een autorisatie fout opgetreden. Probeer opnieuw te registreren.", "OK"); break; case YNCEndpointStatus.AlreadyRegistered: await DisplayAlert("Registratie fout", "Je bent al registreert voor deze les!", "OK"); break; case YNCEndpointStatus.UnexpectedHttpError: await DisplayAlert("Fout", "Er is een onbekende fout opgetreden! Probeer het later opnieuw.", "OK"); break; default: break; } } catch (JsonException ex) { Debug.WriteLine("JsonConvert error: " + ex.ToString()); await DisplayAlert("Fout", "Er is een onbekende fout opgetreden! Probeer het later opnieuw.", "OK"); } beaconsText.Text = str; } ((Button)sender).Text = ((Button)sender).Text.Replace("...", ""); ((Button)sender).IsEnabled = true; }