using System; using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Media; using Project.Controller; using Project.Model; using Project.Persistence; namespace Project.View; public partial class LoginPage : UserControl { readonly AppController? _controller; public LoginPage() { InitializeComponent(); } public LoginPage(AppController controller) { InitializeComponent(); _controller = controller; } //gives loginname and password over to the appcontroller to compare the logins private async void LoginButtonOnClick(object? sender, Avalonia.Interactivity.RoutedEventArgs e) { string loginName = LoginNameBox.Text.Trim() ?? string.Empty; string loginPassword = LoginPasswordBox.Text.Trim() ?? string.Empty; bool allowLogin = AppController.CompareLogin(loginName, loginPassword); var newPopUp = new LoginErrorPopUp(); if (allowLogin) { //show menuview AppController.SetCurrentUser(loginName); //await Task.Delay(1000); // 1 second delay until menu gets shown var newMenuView = new MenuView(); newMenuView.Show(); // close window if (this.Parent is Grid grid && grid.Parent is MainWindow mainWindow) { mainWindow.Close(); } } else { newPopUp.Show(); LoginNameBox.Text = string.Empty; LoginPasswordBox.Text = string.Empty; } } //opens the window to create a new user private async void NewUserButtonOnClick(object? sender, Avalonia.Interactivity.RoutedEventArgs e) { var newLoginWindow = new NewLogin(); newLoginWindow.Show(); } }