AssignManagerForm.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using System;
  2. using System.Data;
  3. using System.Windows.Forms;
  4. namespace WindowsFormsApp4
  5. {
  6. public partial class AssignManagerForm : Form
  7. {
  8. private int requestId;
  9. public AssignManagerForm(int requestId)
  10. {
  11. InitializeComponent();
  12. this.requestId = requestId;
  13. LoadManagers();
  14. AttachEventHandlers();
  15. }
  16. private void AttachEventHandlers()
  17. {
  18. btnAssign.Click += BtnAssign_Click;
  19. btnCancel.Click += BtnCancel_Click;
  20. }
  21. private void LoadManagers()
  22. {
  23. try
  24. {
  25. DataTable managers = DatabaseHelper.GetManagers();
  26. // Очищаем ComboBox
  27. cmbManager.Items.Clear();
  28. // Заполняем вручную
  29. foreach (DataRow row in managers.Rows)
  30. {
  31. string name = row["last_name"].ToString() + " " + row["first_name"].ToString();
  32. int id = Convert.ToInt32(row["id"]);
  33. // Создаем объект для хранения
  34. var item = new ManagerItem { Id = id, Name = name };
  35. cmbManager.Items.Add(item);
  36. }
  37. cmbManager.DisplayMember = "Name";
  38. cmbManager.ValueMember = "Id";
  39. if (cmbManager.Items.Count == 0)
  40. {
  41. MessageBox.Show("Нет доступных менеджеров", "Ошибка",
  42. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  43. btnAssign.Enabled = false;
  44. }
  45. }
  46. catch (Exception ex)
  47. {
  48. MessageBox.Show($"Ошибка загрузки менеджеров: {ex.Message}", "Ошибка",
  49. MessageBoxButtons.OK, MessageBoxIcon.Error);
  50. }
  51. }
  52. private void BtnAssign_Click(object sender, EventArgs e)
  53. {
  54. try
  55. {
  56. if (cmbManager.SelectedItem == null)
  57. {
  58. MessageBox.Show("Выберите менеджера", "Ошибка",
  59. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  60. return;
  61. }
  62. // Получаем ID из выбранного объекта
  63. var selected = (ManagerItem)cmbManager.SelectedItem;
  64. int managerId = selected.Id;
  65. // Назначение менеджера
  66. DatabaseHelper.AssignManagerToRequest(requestId, managerId);
  67. DatabaseHelper.UpdateRequestStatus(requestId, "in_progress");
  68. MessageBox.Show("Менеджер успешно назначен на заявку", "Успешно",
  69. MessageBoxButtons.OK, MessageBoxIcon.Information);
  70. this.DialogResult = DialogResult.OK;
  71. this.Close();
  72. }
  73. catch (Exception ex)
  74. {
  75. MessageBox.Show($"Ошибка при назначении: {ex.Message}", "Ошибка",
  76. MessageBoxButtons.OK, MessageBoxIcon.Error);
  77. }
  78. }
  79. private void BtnCancel_Click(object sender, EventArgs e)
  80. {
  81. this.DialogResult = DialogResult.Cancel;
  82. this.Close();
  83. }
  84. // Вспомогательный класс
  85. public class ManagerItem
  86. {
  87. public int Id { get; set; }
  88. public string Name { get; set; }
  89. }
  90. }
  91. }