64 lines
1.8 KiB
C#
64 lines
1.8 KiB
C#
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();
|
|
}
|
|
} |