public override async void OnShow()
        {
            if (IsLoaded)
            {
                return;
            }

            if (ReadUserSecurityService.ReadUser() != null)
            {
                try
                {
                    ShowLoading("Loading Predictions...");
                    await LoadPredictionsAsync();

                    IsLoaded = true;
                }
                catch (Exception ex)
                {
                    DialogService.Alert("Failed to load Predictions. Please refresh");
                }
                finally
                {
                    HideLoading();
                }
            }
        }
        public override async void OnShow()
        {
            var user = ReadUserSecurityService.ReadUser();

            if (user != null)
            {
                if (string.IsNullOrEmpty(user.Username))
                {
                    await Navigation.PushAsync(new EnterUsernamePage(user));

                    return;
                }

                try
                {
                    DialogService.ShowLoading("Authenticating...");
                    StartupService.SetUser(user);

                    // need to validate that the token is still valid
                    var loginValid = await LoginUserService.CheckUserTokenAsync();

                    if (loginValid)
                    {
                        DialogService.HideLoading();
                        await Navigation.PushModalAsync(new ScorePredictNavigationPage(new MainPage()));
                    }
                    else
                    {
                        ClearUserSecurityService.ClearUserSecurity();
                        DialogService.Alert("You session has expired. Please log in again");
                    }
                }
                finally
                {
                    DialogService.HideLoading();
                }
            }
        }