Main.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. using System;
  2. using System.Windows.Forms;
  3. namespace WindowsFormsApp4
  4. {
  5. public partial class MainForm : Form
  6. {
  7. public MainForm()
  8. {
  9. InitializeComponent();
  10. ConfigureMenuByRole();
  11. SetUserInfo();
  12. AttachEventHandlers();
  13. }
  14. private void AttachEventHandlers()
  15. {
  16. btnRequests.Click += BtnRequests_Click;
  17. btnClients.Click += BtnClients_Click;
  18. btnManagers.Click += BtnManagers_Click;
  19. btnReports.Click += BtnReports_Click;
  20. btnAddresses.Click += BtnAddresses_Click;
  21. btnLogout.Click += BtnLogout_Click;
  22. }
  23. private void SetUserInfo()
  24. {
  25. if (Session.CurrentUser != null)
  26. {
  27. lblUserInfo.Text = $"{Session.CurrentUser.FirstName} {Session.CurrentUser.LastName} ({GetRoleName(Session.CurrentUser.Role)})";
  28. }
  29. }
  30. private string GetRoleName(string role)
  31. {
  32. switch (role)
  33. {
  34. case "admin": return "Администратор";
  35. case "manager": return "Менеджер";
  36. case "client": return "Клиент";
  37. default: return role;
  38. }
  39. }
  40. private void ConfigureMenuByRole()
  41. {
  42. // По умолчанию все кнопки скрыты
  43. btnClients.Visible = false;
  44. btnManagers.Visible = false;
  45. btnReports.Visible = false;
  46. btnAddresses.Visible = false;
  47. btnRequests.Visible = true; // Заявки видят все
  48. if (Session.IsAdmin)
  49. {
  50. btnClients.Visible = true;
  51. btnManagers.Visible = true;
  52. btnReports.Visible = true;
  53. }
  54. else if (Session.IsManager)
  55. {
  56. btnReports.Visible = true;
  57. }
  58. else if (Session.IsClient)
  59. {
  60. btnAddresses.Visible = true;
  61. }
  62. }
  63. private void BtnRequests_Click(object sender, EventArgs e)
  64. {
  65. RequestsForm requestsForm = new RequestsForm();
  66. requestsForm.ShowDialog();
  67. }
  68. private void BtnClients_Click(object sender, EventArgs e)
  69. {
  70. ClientsForm clientsForm = new ClientsForm();
  71. clientsForm.ShowDialog();
  72. }
  73. private void BtnManagers_Click(object sender, EventArgs e)
  74. {
  75. ManagersForm managersForm = new ManagersForm();
  76. managersForm.ShowDialog();
  77. }
  78. private void BtnReports_Click(object sender, EventArgs e)
  79. {
  80. ReportForm reportForm = new ReportForm();
  81. reportForm.ShowDialog();
  82. }
  83. private void BtnAddresses_Click(object sender, EventArgs e)
  84. {
  85. AddressesForm addressesForm = new AddressesForm();
  86. addressesForm.ShowDialog();
  87. }
  88. private void BtnLogout_Click(object sender, EventArgs e)
  89. {
  90. DialogResult result = MessageBox.Show("Вы уверены, что хотите выйти?",
  91. "Подтверждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
  92. if (result == DialogResult.Yes)
  93. {
  94. Session.Logout();
  95. StartForm startForm = new StartForm();
  96. startForm.Show();
  97. this.Close();
  98. }
  99. }
  100. }
  101. }