Project_Keywi/Project.View/Login Page/LoginPage.axaml.cs

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();
}
}