| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- 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; }
- }
- }
- }
|