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