using System; using System.Windows.Forms; namespace WindowsFormsApp4 { public partial class MainForm : Form { public MainForm() { InitializeComponent(); ConfigureMenuByRole(); SetUserInfo(); AttachEventHandlers(); } private void AttachEventHandlers() { btnRequests.Click += BtnRequests_Click; btnClients.Click += BtnClients_Click; btnManagers.Click += BtnManagers_Click; btnReports.Click += BtnReports_Click; btnAddresses.Click += BtnAddresses_Click; btnLogout.Click += BtnLogout_Click; } private void SetUserInfo() { if (Session.CurrentUser != null) { lblUserInfo.Text = $"{Session.CurrentUser.FirstName} {Session.CurrentUser.LastName} ({GetRoleName(Session.CurrentUser.Role)})"; } } private string GetRoleName(string role) { switch (role) { case "admin": return "Администратор"; case "manager": return "Менеджер"; case "client": return "Клиент"; default: return role; } } private void ConfigureMenuByRole() { // По умолчанию все кнопки скрыты btnClients.Visible = false; btnManagers.Visible = false; btnReports.Visible = false; btnAddresses.Visible = false; btnRequests.Visible = true; // Заявки видят все if (Session.IsAdmin) { btnClients.Visible = true; btnManagers.Visible = true; btnReports.Visible = true; } else if (Session.IsManager) { btnReports.Visible = true; } else if (Session.IsClient) { btnAddresses.Visible = true; } } private void BtnRequests_Click(object sender, EventArgs e) { RequestsForm requestsForm = new RequestsForm(); requestsForm.ShowDialog(); } private void BtnClients_Click(object sender, EventArgs e) { ClientsForm clientsForm = new ClientsForm(); clientsForm.ShowDialog(); } private void BtnManagers_Click(object sender, EventArgs e) { ManagersForm managersForm = new ManagersForm(); managersForm.ShowDialog(); } private void BtnReports_Click(object sender, EventArgs e) { ReportForm reportForm = new ReportForm(); reportForm.ShowDialog(); } private void BtnAddresses_Click(object sender, EventArgs e) { AddressesForm addressesForm = new AddressesForm(); addressesForm.ShowDialog(); } private void BtnLogout_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show("Вы уверены, что хотите выйти?", "Подтверждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { Session.Logout(); StartForm startForm = new StartForm(); startForm.Show(); this.Close(); } } } }