| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- using RestaurantApp.DAL;
- using RestaurantApp.Models;
- using System;
- using System.Linq;
- using System.Windows.Forms;
- namespace RestaurantApp
- {
- public partial class ReservationForm : Form
- {
- private ReservationRepository repo = new ReservationRepository();
- public ReservationForm()
- {
- InitializeComponent();
- cmbStatusFilter.SelectedIndex = 0;
- LoadReservations();
- btnSearch.Click += (s, e) => LoadReservations();
- btnRefresh.Click += (s, e) => LoadReservations();
- btnAdd.Click += BtnAdd_Click;
- btnEdit.Click += BtnEdit_Click;
- btnDelete.Click += BtnDelete_Click;
- dgvReservations.SelectionChanged += DgvReservations_SelectionChanged;
- }
- private void LoadReservations()
- {
- try
- {
- string status = cmbStatusFilter.SelectedIndex > 0 ? cmbStatusFilter.Text : "";
- // Если выбран "Все" - передаём пустую строку или null
- string statusParam = (status == "Все" || string.IsNullOrEmpty(status)) ? null : status;
- var reservations = repo.GetAll(statusParam, null, null);
- if (!string.IsNullOrWhiteSpace(txtSearch.Text))
- {
- var search = txtSearch.Text.ToLower();
- reservations = reservations.FindAll(r =>
- r.ClientName.ToLower().Contains(search) ||
- r.TableInfo.ToLower().Contains(search));
- }
- dgvReservations.DataSource = null;
- dgvReservations.DataSource = reservations;
- // ... остальное
- }
- catch (Exception ex)
- {
- MessageBox.Show($"Ошибка загрузки: {ex.Message}");
- }
- }
- private void DgvReservations_SelectionChanged(object sender, EventArgs e)
- {
- if (dgvReservations.CurrentRow != null)
- {
- var res = (Reservation)dgvReservations.CurrentRow.DataBoundItem;
- lblTable.Text = $"Стол: {res.TableInfo}";
- lblClient.Text = $"Клиент: {res.ClientName}";
- lblPhone.Text = $"Телефон: {(string.IsNullOrEmpty(res.ClientName) ? "-" : "скрыт")}";
- lblGuests.Text = $"Кол-во гостей: {res.GuestsCount}";
- lblDateTime.Text = $"Дата/время: {res.ReservedAt:dd.MM.yyyy HH:mm}";
- lblDuration.Text = $"Длительность: {res.DurationMin} мин";
- lblNotes.Text = $"Примечание: {res.Notes}";
- }
- }
- private void BtnAdd_Click(object sender, EventArgs e)
- {
- var form = new ReservationEditForm();
- if (form.ShowDialog() == DialogResult.OK)
- {
- LoadReservations();
- }
- }
- private void BtnEdit_Click(object sender, EventArgs e)
- {
- if (dgvReservations.CurrentRow == null)
- {
- MessageBox.Show("Выберите бронирование");
- return;
- }
- var res = (Reservation)dgvReservations.CurrentRow.DataBoundItem;
- var form = new ReservationEditForm(res);
- if (form.ShowDialog() == DialogResult.OK)
- {
- LoadReservations();
- }
- }
- private void BtnDelete_Click(object sender, EventArgs e)
- {
- if (dgvReservations.CurrentRow == null)
- {
- MessageBox.Show("Выберите бронирование");
- return;
- }
- var res = (Reservation)dgvReservations.CurrentRow.DataBoundItem;
- if (MessageBox.Show($"Удалить бронирование для {res.ClientName} на {res.ReservedAt:dd.MM.yyyy HH:mm}?",
- "Подтверждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
- {
- try
- {
- repo.Delete(res.ReservationId);
- LoadReservations();
- lblTable.Text = "Стол: ";
- lblClient.Text = "Клиент: ";
- lblPhone.Text = "Телефон: ";
- lblGuests.Text = "Кол-во гостей: ";
- lblDateTime.Text = "Дата/время: ";
- lblDuration.Text = "Длительность: ";
- lblNotes.Text = "Примечание: ";
- MessageBox.Show("Бронирование удалено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- catch (Exception ex)
- {
- MessageBox.Show($"Ошибка: {ex.Message}");
- }
- }
- }
- }
- }
|