public async Task <DealModel> PostDealWithRetryAsync(DealPostModel model, bool retry = true) { DealModel deal = null; try { deal = await PostDealAsync(_token, model); } catch (AuthorizationException) { if (retry) { await RenewAuthToken(); deal = await PostDealAsync(_token, model); } else { throw; } } catch (Exception) { throw; } return(deal); }
public async Task <DealModel> PostDealAsync(string token, DealPostModel model) { HttpClient client = this.GetHttpClientToken(token); Uri resourceUri = new Uri(_serverUrl + "deals/"); 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 deal = JsonConvert.DeserializeObject <DealModel>(strResponse); return(deal); }
public async void OnSaveClick(object sender, RoutedEventArgs e) { if (SaveBtn_IsEnabled) { DealPostModel model = new DealPostModel { start_at = StartAt.ToString("o"), end_at = EndAt.ToString("o"), label = Label, description = Description }; try { var customer = await _api.PostDealWithRetryAsync(model); if (customer != null) { Views.ShellPage.ShellFrame.Navigate(typeof(Views.DealsPage), 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(); } } }