private async void Button_Clicked(object sender, EventArgs e) { try { ctrlActivator.IsRunning = true; PNRRootobject pnrRootobject = null; if (CheckForInternetConnection()) { pnrRootobject = await App.serviceManager.RefreshDataAsync(ctrlTxtPNR.Text); if (pnrRootobject != null) { ctrlFramePNRResult.IsVisible = true; ctrlFrameBookingStatus.IsVisible = true; ctrlBottomFrame.IsVisible = true; ctrlBookingStatus.IsVisible = true; Observablepassengers = new ObservableCollection <Passenger>(pnrRootobject.passengers); ctrlGridSource.ItemsSource = Observablepassengers; this.BindingContext = pnrRootobject; } else { await DisplayAlert("Information !", "Please Enter valid PNR..", "OK"); } } else { await DisplayAlert("Warning !", "Internet Connection Lost..", "OK"); } } catch (Exception ex) { Console.WriteLine(ex); } finally { ctrlActivator.IsRunning = false; // pnrRootobject = null; } }
public async Task <PNRRootobject> RefreshDataAsync(string pnrNumber) { PNRRootobject pNRRootobject = null; try { string url = $"https://api.railwayapi.com/v2/pnr-status/pnr/{pnrNumber}/apikey/{ApiKey}/"; var response = await client.GetAsync(new Uri(url)); if (response.IsSuccessStatusCode) { var content = await response.Content.ReadAsStringAsync(); pNRRootobject = JsonConvert.DeserializeObject <PNRRootobject>(content); } } catch (Exception ex) { Console.WriteLine(ex.Message); } return(pNRRootobject); }