84 lines
2.3 KiB
C#
84 lines
2.3 KiB
C#
|
using System;
|
||
|
using System.Linq;
|
||
|
using Avalonia.Controls;
|
||
|
using Avalonia.Interactivity;
|
||
|
using demko_term.Models;
|
||
|
using Microsoft.EntityFrameworkCore;
|
||
|
|
||
|
namespace demko_term;
|
||
|
|
||
|
public partial class MainWindow : Window
|
||
|
{
|
||
|
public MainWindow()
|
||
|
{
|
||
|
InitializeComponent();
|
||
|
PasswordTextBox.PasswordChar = '•';
|
||
|
}
|
||
|
|
||
|
private void AuthButton_OnClick(object? sender, RoutedEventArgs e)
|
||
|
{
|
||
|
using var context = new DemoCourseworkContext();
|
||
|
|
||
|
var loginText = LoginTextBox?.Text?.Trim();
|
||
|
var password = PasswordTextBox?.Text;
|
||
|
|
||
|
if (string.IsNullOrEmpty(loginText) || string.IsNullOrEmpty(password))
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var employee = context.Employees
|
||
|
.Include(e => e.Position)
|
||
|
.FirstOrDefault(e => e.Login == loginText);
|
||
|
|
||
|
if (employee != null && password == employee.Password)
|
||
|
{
|
||
|
var history = new EmployeesHistory
|
||
|
{
|
||
|
EmployeeId = employee.Id,
|
||
|
LastLogin = DateTime.Now,
|
||
|
SuccessLogin = true
|
||
|
};
|
||
|
context.EmployeesHistories.Add(history);
|
||
|
context.SaveChanges();
|
||
|
|
||
|
switch (employee.PositionId)
|
||
|
{
|
||
|
case 1:
|
||
|
new VolunteerWindow(employee).ShowDialog(this);
|
||
|
break;
|
||
|
case 2:
|
||
|
new ManagerWindow(employee).ShowDialog(this);
|
||
|
break;
|
||
|
case 3:
|
||
|
new WorkerWindow(employee).ShowDialog(this);
|
||
|
break;
|
||
|
default:
|
||
|
new BlankWindow().ShowDialog(this);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
var history = new EmployeesHistory
|
||
|
{
|
||
|
EmployeeId = employee.Id,
|
||
|
LastLogin = DateTime.Now,
|
||
|
SuccessLogin = false
|
||
|
};
|
||
|
context.EmployeesHistories.Add(history);
|
||
|
context.SaveChanges();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void ShowPasswordCheckBox_OnCheck(object sender, RoutedEventArgs e)
|
||
|
{
|
||
|
PasswordTextBox.PasswordChar = '\0';
|
||
|
}
|
||
|
|
||
|
private void ShowPasswordCheckBox_OnUncheck(object sender, RoutedEventArgs e)
|
||
|
{
|
||
|
PasswordTextBox.PasswordChar = '•';
|
||
|
}
|
||
|
}
|