ClientEditForm.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using System.Windows.Forms;
  3. using RestaurantApp.DAL;
  4. using RestaurantApp.Models;
  5. namespace RestaurantApp
  6. {
  7. public partial class ClientEditForm : Form
  8. {
  9. private ClientRepository repo = new ClientRepository();
  10. private Client client;
  11. private bool isEdit = false;
  12. public ClientEditForm()
  13. {
  14. InitializeComponent();
  15. isEdit = false;
  16. client = new Client();
  17. Text = "Новый клиент";
  18. dtpBirthDate.Value = DateTime.Now.AddYears(-18);
  19. btnSave.Click += BtnSave_Click;
  20. btnCancel.Click += (s, e) => DialogResult = DialogResult.Cancel;
  21. }
  22. public ClientEditForm(Client existingClient)
  23. {
  24. InitializeComponent();
  25. isEdit = true;
  26. client = existingClient;
  27. Text = "Редактирование клиента";
  28. LoadData();
  29. btnSave.Click += BtnSave_Click;
  30. btnCancel.Click += (s, e) => DialogResult = DialogResult.Cancel;
  31. }
  32. private void LoadData()
  33. {
  34. txtFirstName.Text = client.FirstName;
  35. txtLastName.Text = client.LastName;
  36. txtPhone.Text = client.Phone;
  37. txtEmail.Text = client.Email;
  38. if (client.BirthDate.HasValue)
  39. dtpBirthDate.Value = client.BirthDate.Value;
  40. numBonusPoints.Value = client.BonusPoints;
  41. }
  42. private void SaveData()
  43. {
  44. client.FirstName = txtFirstName.Text.Trim();
  45. client.LastName = txtLastName.Text.Trim();
  46. client.Phone = txtPhone.Text.Trim();
  47. client.Email = txtEmail.Text.Trim();
  48. client.BirthDate = dtpBirthDate.Value;
  49. client.BonusPoints = (int)numBonusPoints.Value;
  50. if (string.IsNullOrWhiteSpace(client.FirstName))
  51. throw new Exception("Введите имя");
  52. if (string.IsNullOrWhiteSpace(client.LastName))
  53. throw new Exception("Введите фамилию");
  54. if (isEdit)
  55. repo.Update(client);
  56. else
  57. repo.Insert(client);
  58. }
  59. private void BtnSave_Click(object sender, EventArgs e)
  60. {
  61. try
  62. {
  63. SaveData();
  64. DialogResult = DialogResult.OK;
  65. Close();
  66. }
  67. catch (Exception ex)
  68. {
  69. MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  70. }
  71. }
  72. }
  73. }