Esempio n. 1
0
        /// <summary>
        /// Invoked when the application is launched normally by the end user.  Other entry points
        /// will be used such as when the application is launched to open a specific file.
        /// </summary>
        /// <param name="e">Details about the launch request and process.</param>
        protected override void OnLaunched(LaunchActivatedEventArgs e)
        {
            Frame rootFrame = Window.Current.Content as Frame;

            // Do not repeat app initialization when the Window already has content,
            // just ensure that the window is active
            if (rootFrame == null)
            {
                // Create a Frame to act as the navigation context and navigate to the first page
                rootFrame = new Frame();

                rootFrame.NavigationFailed += OnNavigationFailed;

                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    //TODO: Load state from previously suspended application
                }

                // Place the frame in the current Window
                Window.Current.Content = rootFrame;
            }

            if (e.PrelaunchActivated == false)
            {
                if (rootFrame.Content == null)
                {
                    // When the navigation stack isn't restored navigate to the first page,
                    // configuring the new page by passing required information as a navigation
                    // parameter
                    var localStorage = new LocalStorage();
                    if (!string.IsNullOrEmpty(localStorage.GetAccessToken()))
                    {
                        rootFrame.Navigate(typeof(MainPage), e.Arguments);
                    }
                    else
                    {
                        rootFrame.Navigate(typeof(Login), e.Arguments);
                    }
                }
                // Ensure the current window is active
                Window.Current.Activate();
            }
        }
Esempio n. 2
0
        protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            // See if the request has an authorize header
            var auth = request.Headers.Authorization;

            if (auth != null)
            {
                var accessToken = localStorage.GetAccessToken();
                request.Headers.Authorization = new AuthenticationHeaderValue(auth.Scheme, accessToken);
            }

            var result = await base.SendAsync(request, cancellationToken).ConfigureAwait(false);

            if (result.StatusCode == System.Net.HttpStatusCode.Unauthorized)
            {
                Console.WriteLine("User is unauthorized.");
                Console.WriteLine("Refreshing Access Token...");
                // refresh access_token
                // resend
            }

            return(result);
        }
Esempio n. 3
0
        //set root page: along with ENV: Pos or Customer
        private Page GetRootPage()
        {
            Page rootPage;

            if (string.IsNullOrEmpty(LocalStorage.GetAccessToken()))
            {
                // first use app, no access_token -> login at first
                rootPage = new PosLoginPage();
            }
            else
            {
                // have access_token: not need to login
                //ENV = Pos
                if (LocalStorage.GetEnviroment() == Constants.POS_ENV)
                {
                    rootPage = new CustomerListPage();
                }
                else // ENV = customer
                {
                    rootPage = new CustomerLoginPage();
                }
            }
            return(new NavigationPage(rootPage));
        }
Esempio n. 4
0
 public static void SetDefaultHeaders(this HttpClient client)
 {
     client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", LocalStorage.GetAccessToken());
 }