using System; using System.Data; using System.Windows.Forms; namespace WindowsFormsApp4 { public partial class AssignManagerForm : Form { private int requestId; public AssignManagerForm(int requestId) { InitializeComponent(); this.requestId = requestId; LoadManagers(); AttachEventHandlers(); } private void AttachEventHandlers() { btnAssign.Click += BtnAssign_Click; btnCancel.Click += BtnCancel_Click; } private void LoadManagers() { try { DataTable managers = DatabaseHelper.GetManagers(); // Очищаем ComboBox cmbManager.Items.Clear(); // Заполняем вручную foreach (DataRow row in managers.Rows) { string name = row["last_name"].ToString() + " " + row["first_name"].ToString(); int id = Convert.ToInt32(row["id"]); // Создаем объект для хранения var item = new ManagerItem { Id = id, Name = name }; cmbManager.Items.Add(item); } cmbManager.DisplayMember = "Name"; cmbManager.ValueMember = "Id"; if (cmbManager.Items.Count == 0) { MessageBox.Show("Нет доступных менеджеров", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); btnAssign.Enabled = false; } } catch (Exception ex) { MessageBox.Show($"Ошибка загрузки менеджеров: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void BtnAssign_Click(object sender, EventArgs e) { try { if (cmbManager.SelectedItem == null) { MessageBox.Show("Выберите менеджера", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } // Получаем ID из выбранного объекта var selected = (ManagerItem)cmbManager.SelectedItem; int managerId = selected.Id; // Назначение менеджера DatabaseHelper.AssignManagerToRequest(requestId, managerId); DatabaseHelper.UpdateRequestStatus(requestId, "in_progress"); MessageBox.Show("Менеджер успешно назначен на заявку", "Успешно", MessageBoxButtons.OK, MessageBoxIcon.Information); this.DialogResult = DialogResult.OK; this.Close(); } catch (Exception ex) { MessageBox.Show($"Ошибка при назначении: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void BtnCancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; this.Close(); } // Вспомогательный класс public class ManagerItem { public int Id { get; set; } public string Name { get; set; } } } }