public async Task <SensorModel> PostSensorWithRetryAsync(SensorPostModel model, bool retry = true) { SensorModel sensor = null; try { sensor = await PostSensorAsync(_token, model); } catch (AuthorizationException) { if (retry) { await RenewAuthToken(); sensor = await PostSensorAsync(_token, model); } else { throw; } } catch (Exception) { throw; } return(sensor); }
public async void OnSaveClick(object sender, RoutedEventArgs e) { if (SaveBtn_IsEnabled) { SensorPostModel model = new SensorPostModel { pos_x = Int32.Parse(PosX), pos_y = Int32.Parse(PosY), radius = Int32.Parse(Radius), key = Key, mqtt_account = new MqttAccountPostModel { server = Server, port = Int32.Parse(Port), keep_alive = Int32.Parse(KeepAlive), username = Username, password = Password } }; try { var customer = await _api.PostSensorWithRetryAsync(model); if (customer != null) { Views.ShellPage.ShellFrame.Navigate(typeof(Views.SensorsPage), customer); } else { var unknowErrordialog = new Windows.UI.Popups.MessageDialog( "Une erreur est survenue", "Erreur"); unknowErrordialog.Commands.Add(new Windows.UI.Popups.UICommand("Fermer") { Id = 0 }); unknowErrordialog.DefaultCommandIndex = 0; var resultUnknow = await unknowErrordialog.ShowAsync(); } } catch (Exception ex) { var dialog = new Windows.UI.Popups.MessageDialog( ex.Message, "Erreur" ); dialog.Commands.Add(new Windows.UI.Popups.UICommand("Fermer") { Id = 0 }); dialog.DefaultCommandIndex = 0; var result = await dialog.ShowAsync(); } } }
public async Task <SensorModel> PostSensorAsync(string token, SensorPostModel model) { HttpClient client = this.GetHttpClientToken(token); Uri resourceUri = new Uri(_serverUrl + "sensors/"); string jsonObject = ""; Debug.WriteLine(model); jsonObject = JsonConvert.SerializeObject(model); Debug.WriteLine("ici"); var response = await client.PostAsync(resourceUri, new System.Net.Http.StringContent(jsonObject, System.Text.Encoding.UTF8, "application/json")); var strResponse = await response.Content.ReadAsStringAsync(); switch (response.StatusCode) { case System.Net.HttpStatusCode.Unauthorized: throw new AuthorizationException("Wrong token"); case System.Net.HttpStatusCode.BadRequest: throw new Exception(strResponse); case System.Net.HttpStatusCode.InternalServerError: throw new Exception("Server error"); } Debug.WriteLine(strResponse); var sensor = JsonConvert.DeserializeObject <SensorModel>(strResponse); return(sensor); }