MainWindow.axaml.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System.Linq;
  2. using Avalonia.Controls;
  3. using Avalonia.Interactivity;
  4. using FirstSlice.Models;
  5. using Microsoft.EntityFrameworkCore;
  6. namespace FirstSlice;
  7. public partial class MainWindow : Window
  8. {
  9. public MainWindow()
  10. {
  11. InitializeComponent();
  12. RoleTable.Items = Helper.GetContext().Roles.ToList();
  13. UserTable.Items = Helper.GetContext().Users.Include(x => x.FkRole).ToList();
  14. }
  15. private async void OnAddUserClick(object? sender, RoutedEventArgs e)
  16. {
  17. var userWindow = new UserWindow();
  18. await userWindow.ShowDialog(this);
  19. UserTable.Items = Helper.GetContext().Users.Include(x => x.FkRole).ToList();
  20. }
  21. private void OnDeleteUserClick(object? sender, RoutedEventArgs e)
  22. {
  23. var user = UserTable.SelectedItem as User;
  24. Helper.GetContext().Users.Remove(user);
  25. Helper.GetContext().SaveChanges();
  26. UserTable.Items = Helper.GetContext().Users.Include(x => x.FkRole).ToList();
  27. }
  28. private async void OnUserTableDoubleTapped(object? sender, RoutedEventArgs e)
  29. {
  30. DataGrid grid = sender as DataGrid;
  31. var user = grid.SelectedItem as User;
  32. var userWindow = new UserWindow(user);
  33. await userWindow.ShowDialog(this);
  34. UserTable.Items = Helper.GetContext().Users.Include(x => x.FkRole).ToList();
  35. }
  36. private async void OnAddRoleClick(object? sender, RoutedEventArgs e)
  37. {
  38. var role = new RoleWindow();
  39. await role.ShowDialog(this);
  40. RoleTable.Items = Helper.GetContext().Roles.ToList();
  41. }
  42. private void OnDeleteRoleClick(object? sender, RoutedEventArgs e)
  43. {
  44. var role = RoleTable.SelectedItem as Role;
  45. Helper.GetContext().Roles.Remove(role);
  46. Helper.GetContext().SaveChanges();
  47. RoleTable.Items = Helper.GetContext().Roles.ToList();
  48. }
  49. private async void OnRoleTableDoubleTapped(object? sender, RoutedEventArgs e)
  50. {
  51. DataGrid grid = sender as DataGrid;
  52. var role = grid.SelectedItem as Role;
  53. var roleWindow = new RoleWindow(role);
  54. await roleWindow.ShowDialog(this);
  55. RoleTable.Items = Helper.GetContext().Roles.ToList();
  56. }
  57. }