Esempio n. 1
0
        private async void CmdLogin_Clicked(object sender, EventArgs e)
        {
            var user = new MstUser
            {
                UserName = UserName.Text,
                Password = Password.Text
            };

            if (user.Password == "pass")
            {
                SettingsRepository.CreateLocalSettingsDB();

                await Navigation.PushAsync(new Settings());

                return;
            }

            try
            {
                LoginActivityIndicator.IsRunning = true;
                LoginActivityIndicator.IsVisible = true;

                LoginText.Text = "Logging in, please wait for a moment!";

                var login = await ApiRequest <MstUser, MstUser> .PostRead("MstUser/CanLogin", user);

                if (login != null && login.Id != 0)
                {
                    SettingsRepository.UpdateLocalSettingsDB(login);

                    await Navigation.PushAsync(new AppMenu());

                    Navigation.RemovePage(this);
                }
                else
                {
                    if (loginAttemptCount > 0)
                    {
                        LoginText.Text      = $"Invalid username or password!, attempt {loginAttemptCount}";
                        LoginText.TextColor = Color.Red;

                        if (loginAttemptCount > 9)
                        {
                            await Application.Current.MainPage.DisplayAlert("POS", "App will be terminated", "Ok");

                            Environment.Exit(0);
                        }
                    }
                    else
                    {
                        LoginText.Text = "Invalid username or password!";
                    }

                    loginAttemptCount++;
                }

                LoginActivityIndicator.IsRunning = false;
                LoginActivityIndicator.IsVisible = false;
            }
            catch (Exception ex)
            {
                SettingsRepository.CreateLocalSettingsDB();

                LoginText.Text = $"{ex.Message}";

                LoginActivityIndicator.IsRunning = false;
                LoginActivityIndicator.IsVisible = false;
            }
        }