Esempio n. 1
0
        private static Task <HttpResponseMessage> RequestHelper(HttpRequest request)
        {
            //create http request
            var msg = PrepareRequest(request);

            return(SharedClient.SendAsync(msg));
        }
Esempio n. 2
0
        private static Task <HttpResponseMessage> RequestStreamHelper(HttpRequest request)
        {
            //create http request
            var msg = PrepareRequest(request);

            return(SharedClient.SendAsync(msg, HttpCompletionOption.ResponseHeadersRead));
        }
        private async Task Init(NavigationParameters navigationParameters)
        {
            try
            {
                var source = navigationParameters.ContainsKey(LoginConfig.Constants.NavigationSourceKey) ? navigationParameters[LoginConfig.Constants.NavigationSourceKey].ToString() : string.Empty;


                SharedClient.Setup(XpenceConfig.Settings.UID, XpenceConfig.Settings.LastValidToken, LoginConfig.Constants.AzureServerUrl);
                await Store.InitStore(SharedClient.CurrentClient).ConfigureAwait(false);


                //user can disable cloud synchronization


                //If connected to internet we will refresh data with azure and refresh tokens
                if (Connectivity.IsConnected())
                {
                    if (!string.IsNullOrWhiteSpace(XpenceConfig.Settings.LastValidToken))
                    {
                        //we have saved token and have to check it and refresh
                        //we need the Token

                        var tokenExpired = await AzureClientUtility.IsTokenExpired(XpenceConfig.Settings.LastValidToken);

                        Debug.WriteLine($"Token expired {tokenExpired}");
                        if (tokenExpired)
                        {
                            await NavigateToLogin();
                        }
                        else
                        {
                            //check that we have time interval passed after the previous pin
                            if (PinRequired())
                            {
                                //Pin was entered with error more then N times. redirect to login page
                                //later user could change the pin
                                //in application settings
                                if (string.Equals(source, PinViewResults.PinError.ToString()))
                                {
                                    await NavigateToLogin();
                                }
                                else
                                {
                                    await NavigateToPin();
                                }
                            }
                            else
                            {
                                //check that we need to call initial application wizard
                                if (XpenceConfig.Settings.InitialRegistrationRequired)
                                {
                                    await NavigateRegistration();
                                }
                                else
                                {
                                    if (XpenceConfig.Settings.SyncOnStart)
                                    {
                                        await _itemManagerWrapper.SyncAllAsync();
                                    }

                                    //navigate to app

                                    await Navigate(NavigationMap.EntryPoint);
                                }
                            }
                        }
                    }
                    else
                    {
                        await NavigateToLogin();
                    }
                }
                else
                {
                    await Navigate(NavigationMap.OnStartNotificationPage, null, navigationParameters);
                }
            }
            catch (AggregateException ex)
            {
                Debug.WriteLine(ex);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
        }