132 lines
3.5 KiB
C#
132 lines
3.5 KiB
C#
using Avalonia.Controls;
|
|
using Avalonia.Interactivity;
|
|
using Demka_Snova_1.Hardik.Conect;
|
|
using Demka_Snova_1.Hardik.Conect.Dao;
|
|
using Demka_Snova_1.OknaRoley;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Demka_Snova_1.OknaFunciy;
|
|
|
|
public partial class SotrudnikiWindow : Window
|
|
{
|
|
private List<SotrudnikDao> _sotrudnikiList;
|
|
private List<historyDao> _activityList;
|
|
|
|
public SotrudnikiWindow()
|
|
{
|
|
InitializeComponent();
|
|
this.Opened += async (s, e) => await LoadSotrudnikiAsync();
|
|
}
|
|
|
|
private async Task LoadSotrudnikiAsync()
|
|
{
|
|
try
|
|
{
|
|
using (var db = new DatabaseConnection())
|
|
{
|
|
_sotrudnikiList = db.GetAllSotrudniki();
|
|
_activityList = db.GetAllHistory();
|
|
this.FindControl<DataGrid>("SotrudnikiDataGrid").ItemsSource = _sotrudnikiList;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
await ShowError($"Îøèáêà ïðè çàãðóçêå äàííûõ: {ex.Message}");
|
|
}
|
|
}
|
|
|
|
private async void AddSotrudnik(object sender, RoutedEventArgs e)
|
|
{
|
|
var addWindow = new AddSotrudnikWindow();
|
|
var result = await addWindow.ShowDialog<SotrudnikDao>(this);
|
|
|
|
if (result != null)
|
|
{
|
|
using (var db = new DatabaseConnection())
|
|
{
|
|
Äîáàâüòå çäåñü ëîãèêó ñîõðàíåíèÿ ñîòðóäíèêà â ÁÄ
|
|
await LoadSotrudnikiAsync();
|
|
}
|
|
}
|
|
}
|
|
|
|
private async void DeleteSotrudnik(object sender, RoutedEventArgs e)
|
|
{
|
|
var selected = GetSelectedSotrudnik();
|
|
if (selected != null)
|
|
{
|
|
using (var db = new DatabaseConnection())
|
|
{
|
|
Äîáàâüòå çäåñü ëîãèêó óäàëåíèÿ ñîòðóäíèêà èç ÁÄ
|
|
await LoadSotrudnikiAsync();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
await ShowError("Âûáåðèòå ñîòðóäíèêà äëÿ óäàëåíèÿ.");
|
|
}
|
|
}
|
|
|
|
private SotrudnikDao GetSelectedSotrudnik()
|
|
{
|
|
return this.FindControl<DataGrid>("SotrudnikiDataGrid").SelectedItem as SotrudnikDao;
|
|
}
|
|
|
|
private async void ChangeRole(object sender, RoutedEventArgs e)
|
|
{
|
|
var selected = GetSelectedSotrudnik();
|
|
if (selected != null)
|
|
{
|
|
var roleWindow = new ChangeRoleWindow(selected);
|
|
var result = await roleWindow.ShowDialog<SotrudnikDao>(this);
|
|
|
|
if (result != null)
|
|
{
|
|
using (var db = new DatabaseConnection())
|
|
{
|
|
Äîáàâüòå çäåñü ëîãèêó îáíîâëåíèÿ ðîëè â ÁÄ
|
|
await LoadSotrudnikiAsync();
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
await ShowError("Âûáåðèòå ñîòðóäíèêà äëÿ èçìåíåíèÿ ðîëè.");
|
|
}
|
|
}
|
|
|
|
private void Exitka(object sender, RoutedEventArgs e)
|
|
{
|
|
new AdminWindow().Show();
|
|
this.Close();
|
|
}
|
|
|
|
private async void ViewActivity(object sender, RoutedEventArgs e)
|
|
{
|
|
var activityWindow = new ActivityWindow(_activityList);
|
|
await activityWindow.ShowDialog(this);
|
|
}
|
|
|
|
private async Task ShowError(string message)
|
|
{
|
|
var dialog = new Window
|
|
{
|
|
Title = "Îøèáêà",
|
|
Content = message,
|
|
Width = 300,
|
|
Height = 200
|
|
};
|
|
|
|
if (this.IsVisible)
|
|
{
|
|
await dialog.ShowDialog(this);
|
|
}
|
|
else
|
|
{
|
|
dialog.Show();
|
|
}
|
|
}
|
|
} |