LoginPage.xaml.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. namespace practiceApplicaiton;
  2. public partial class LoginPage : ContentPage
  3. {
  4. public LoginPage()
  5. {
  6. InitializeComponent();
  7. RolePicker.SelectedIndex = 1; // По умолчанию — Менеджер
  8. }
  9. private async void OnLoginClicked(object sender, EventArgs e)
  10. {
  11. ErrorLabel.IsVisible = false;
  12. LoginButton.IsEnabled = false;
  13. if (RolePicker.SelectedIndex < 0)
  14. {
  15. ShowError("Выберите роль");
  16. return;
  17. }
  18. var role = RolePicker.SelectedIndex == 0 ? AppRole.Admin : AppRole.Manager;
  19. var password = PasswordEntry.Text ?? "";
  20. if (string.IsNullOrWhiteSpace(password))
  21. {
  22. ShowError("Введите пароль");
  23. return;
  24. }
  25. try
  26. {
  27. var ok = await Database.ConnectAsync(role, password);
  28. if (ok)
  29. {
  30. Application.Current!.Windows[0].Page = new AppShell();
  31. }
  32. else
  33. {
  34. ShowError("Неверный пароль или нет доступа к БД");
  35. }
  36. }
  37. catch (Exception ex)
  38. {
  39. ShowError($"Ошибка подключения: {ex.Message}");
  40. }
  41. finally
  42. {
  43. LoginButton.IsEnabled = true;
  44. }
  45. }
  46. private void ShowError(string msg)
  47. {
  48. ErrorLabel.Text = msg;
  49. ErrorLabel.IsVisible = true;
  50. }
  51. }