ClientForm.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using System;
  2. using System.Windows.Forms;
  3. using RestaurantApp.DAL;
  4. using RestaurantApp.Models;
  5. namespace RestaurantApp
  6. {
  7. public partial class ClientForm : Form
  8. {
  9. private ClientRepository repo = new ClientRepository();
  10. public ClientForm()
  11. {
  12. InitializeComponent();
  13. LoadData();
  14. btnSearch.Click += (s, e) => LoadData();
  15. btnRefresh.Click += (s, e) => LoadData();
  16. btnAdd.Click += BtnAdd_Click;
  17. btnEdit.Click += BtnEdit_Click;
  18. btnDelete.Click += BtnDelete_Click;
  19. dgvClients.DoubleClick += (s, e) => BtnEdit_Click(s, e);
  20. }
  21. private void LoadData()
  22. {
  23. try
  24. {
  25. var clients = repo.GetAll(txtSearch.Text);
  26. dgvClients.DataSource = null;
  27. dgvClients.DataSource = clients;
  28. if (dgvClients.Columns.Count > 0)
  29. {
  30. dgvClients.Columns["ClientId"].HeaderText = "ID";
  31. dgvClients.Columns["FirstName"].HeaderText = "Имя";
  32. dgvClients.Columns["LastName"].HeaderText = "Фамилия";
  33. dgvClients.Columns["Phone"].HeaderText = "Телефон";
  34. dgvClients.Columns["Email"].HeaderText = "Email";
  35. dgvClients.Columns["BirthDate"].HeaderText = "Дата рождения";
  36. dgvClients.Columns["BonusPoints"].HeaderText = "Бонусы";
  37. dgvClients.Columns["RegisteredAt"].HeaderText = "Дата регистрации";
  38. dgvClients.Columns["FullName"].Visible = false;
  39. }
  40. }
  41. catch (Exception ex)
  42. {
  43. MessageBox.Show($"Ошибка загрузки: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  44. }
  45. }
  46. private void BtnAdd_Click(object sender, EventArgs e)
  47. {
  48. var form = new ClientEditForm();
  49. if (form.ShowDialog() == DialogResult.OK)
  50. {
  51. LoadData();
  52. }
  53. }
  54. private void BtnEdit_Click(object sender, EventArgs e)
  55. {
  56. if (dgvClients.CurrentRow == null)
  57. {
  58. MessageBox.Show("Выберите клиента", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  59. return;
  60. }
  61. var client = (Client)dgvClients.CurrentRow.DataBoundItem;
  62. var form = new ClientEditForm(client);
  63. if (form.ShowDialog() == DialogResult.OK)
  64. {
  65. LoadData();
  66. }
  67. }
  68. private void btnRefresh_Click(object sender, EventArgs e)
  69. {
  70. txtSearch.Text = "";
  71. LoadData();
  72. }
  73. private void BtnDelete_Click(object sender, EventArgs e)
  74. {
  75. if (dgvClients.CurrentRow == null)
  76. {
  77. MessageBox.Show("Выберите клиента", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  78. return;
  79. }
  80. var client = (Client)dgvClients.CurrentRow.DataBoundItem;
  81. if (MessageBox.Show($"Удалить клиента {client.FullName}?", "Подтверждение",
  82. MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  83. {
  84. try
  85. {
  86. repo.Delete(client.ClientId);
  87. LoadData();
  88. MessageBox.Show("Клиент удалён", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
  89. }
  90. catch (Exception ex)
  91. {
  92. MessageBox.Show($"Ошибка удаления: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  93. }
  94. }
  95. }
  96. }
  97. }