// Get data from XERO API. private async void LoadDeliveryBtn_Clicked(object sender, EventArgs e) { if (!App.CheckIfInternet()) { await DisplayAlert("Oops", "No internet connection, couldn't load data from XERO", "OK"); return; } spinnerActivity.IsVisible = true; // no access token in Preferences: first run -> login // more than 30 days -> login // more than 30 mins -> get new access token // otherwise -> get data directly XeroAPI.DecodeAccessToken(); long currentUnixTimeStamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); try { if (XeroAPI._accessToken == null || currentUnixTimeStamp - XeroAPI._accessToken.nbf >= 30 * 24 * 3600) { await Navigation.PushModalAsync(new XEROWebPage()); GridOverlay.IsVisible = false; } else if (currentUnixTimeStamp - XeroAPI._accessToken.nbf > 1800) { // get a new access token await XeroAPI.RefreshToken(); await XeroAPI.GetTenantID(); await XeroAPI.GetInvoices(); await XeroAPI.FillData(); SupplyOrder(); //await DisplayAlert("Xero API", "You got a new access Token", "OK"); await DisplayAlert("Xero API", "Data has been loaded", "OK"); } else { // get the data by the access token; await XeroAPI.GetTenantID(); await XeroAPI.GetInvoices(); await XeroAPI.FillData(); SupplyOrder(); await DisplayAlert("Xero API", "Data has been loaded", "OK"); } } catch { await DisplayAlert("Xero API", "Failure in loading data from XERO", "OK"); } spinnerActivity.IsVisible = false; }
//Get data from XERO API private async void LoadDeliveryBtn_Clicked(object sender, EventArgs e) { // test data // Get invoice // _InvoiceResponse = JsonConvert.DeserializeObject<InvoiceResponse>(responseBody); //XeroAPI._InvoiceResponse = new InvoiceResponse(); //XeroAPI._InvoiceResponse.Id = "b0379bbd-a973-acd5-81a37798b2ab"; //XeroAPI._InvoiceResponse.Status = "OK"; //XeroAPI._InvoiceResponse.ProviderName = "WhiterocksStudAndFeed"; //XeroAPI._InvoiceResponse.DateTimeUTC = DateTime.UtcNow; if (!App.CheckIfInternet()) { await DisplayAlert("Oops", "No internet connection, couldn't load data from XERO", "OK"); return; } // no access token in Preferences: first run -> login // more than 30 days -> login // more than 30 mins -> get new access token // otherwise -> get data directly XeroAPI.DecodeAccessToken(); long currentUnixTimeStamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); if (XeroAPI._accessToken == null || currentUnixTimeStamp - XeroAPI._accessToken.nbf >= 30 * 24 * 3600) { await Navigation.PushModalAsync(new XEROWebPage()); GridOverlay.IsVisible = false; } else if (currentUnixTimeStamp - XeroAPI._accessToken.nbf > 1800) { // get a new access token await XeroAPI.RefreshToken(); await XeroAPI.GetInvoices(); await XeroAPI.FillData(); await DisplayAlert("Xero API", "You got a new access Token", "OK"); } else { // get the data by the access token; await XeroAPI.GetInvoices(); await XeroAPI.FillData(); await DisplayAlert("Xero API", "You got the data", "OK"); } SupplyOrder(); CheckHasDataLabel(); }