Beispiel #1
0
        // 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;
        }
Beispiel #2
0
        //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();
        }