FinalPresenceLexa/Presence/GroupsWindow.axaml.cs
2025-04-28 11:51:01 +03:00

81 lines
2.2 KiB
C#

using Avalonia.Controls;
using Avalonia.Interactivity;
using System.Linq;
using data.RemoteData.RemoteDataBase;
using data.RemoteData.RemoteDataBase.DAO;
namespace Presence
{
public partial class GroupsWindow : Window
{
private readonly RemoteDatabaseContext _context;
public GroupsWindow()
{
InitializeComponent();
_context = new RemoteDatabaseContext();
LoadGroups();
GroupComboBox.SelectionChanged += GroupComboBox_SelectionChanged;
BtnRefresh.Click += (s, e) => LoadGroups();
BtnAddUser.Click += BtnAddUser_Click;
}
private void LoadGroups()
{
var groups = _context.Groups.ToList();
GroupComboBox.ItemsSource = groups;
LoadUsers();
}
private void GroupComboBox_SelectionChanged(object? sender, SelectionChangedEventArgs e)
{
LoadUsers();
}
private void LoadUsers()
{
if (GroupComboBox.SelectedItem is GroupDAO selectedGroup)
{
var users = _context.Users
.Where(u => u.GroupId == selectedGroup.Id)
.ToList();
UsersList.ItemsSource = users;
}
else
{
UsersList.ItemsSource = null;
}
}
private async void BtnAddUser_Click(object? sender, RoutedEventArgs e)
{
var addWindow = new AddOrEditUserWindow(_context);
await addWindow.ShowDialog(this);
LoadUsers();
}
private async void EditUser_Click(object? sender, RoutedEventArgs e)
{
if (UsersList.SelectedItem is UserDAO selectedUser)
{
var editWindow = new AddOrEditUserWindow(_context, selectedUser);
await editWindow.ShowDialog(this);
LoadUsers();
}
}
private void DeleteUser_Click(object? sender, RoutedEventArgs e)
{
if (UsersList.SelectedItem is UserDAO selectedUser)
{
_context.Users.Remove(selectedUser);
_context.SaveChanges();
LoadUsers();
}
}
}
}