118 lines
4.6 KiB
C#
118 lines
4.6 KiB
C#
|
using database;
|
|||
|
using System.Windows.Forms;
|
|||
|
|
|||
|
namespace Forms
|
|||
|
{
|
|||
|
public partial class FormService : Form
|
|||
|
{
|
|||
|
private Abstractions bd;
|
|||
|
public FormService(Abstractions _bd)
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
bd = _bd;
|
|||
|
}
|
|||
|
|
|||
|
private void loadData()
|
|||
|
{
|
|||
|
List<Service> services = bd.GetServices();
|
|||
|
|
|||
|
// Очищаем dataGridView перед заполнением новыми данными
|
|||
|
dataGridView.Rows.Clear();
|
|||
|
|
|||
|
// Предварительно определяем столбцы, если это не было сделано ранее
|
|||
|
if (dataGridView.ColumnCount == 0)
|
|||
|
{
|
|||
|
dataGridView.Columns.Add("Id", "ID");
|
|||
|
dataGridView.Columns.Add("Title", "Title");
|
|||
|
dataGridView.Columns.Add("Cost", "Cost");
|
|||
|
dataGridView.Columns.Add("EmployeesId", "EmployeesId");
|
|||
|
dataGridView.Columns["EmployeesId"].Visible = false;
|
|||
|
dataGridView.Columns.Add("Employees", "Employees");
|
|||
|
}
|
|||
|
|
|||
|
// Заполняем dataGridView данными из списка услуг
|
|||
|
foreach (Service service in services)
|
|||
|
{
|
|||
|
dataGridView.Rows.Add(service.Id, service.Title, service.Cost, service.EmployeesId, bd.GetEmployeeById(service.EmployeesId).Id);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void buttonCreate_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
// Создаем новый объект Service с данными из текстовых полей и комбо-бокса
|
|||
|
Service newService = new Service
|
|||
|
{
|
|||
|
Title = textBoxTitle.Text,
|
|||
|
Cost = decimal.Parse(textBoxCost.Text),
|
|||
|
EmployeesId = ((Employee)comboBoxEmployeesId.SelectedItem).Id,
|
|||
|
};
|
|||
|
|
|||
|
// Добавляем новую услугу в базу данных
|
|||
|
bd.AddService(newService);
|
|||
|
|
|||
|
// Перезагружаем данные в таблицу
|
|||
|
loadData();
|
|||
|
}
|
|||
|
|
|||
|
private void buttonUpdate_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
// Получаем Id выбранной строки
|
|||
|
int selectedRowId = (int)dataGridView.SelectedRows[0].Cells["Id"].Value;
|
|||
|
|
|||
|
// Создаем объект Service с обновленными данными из текстовых полей и комбо-бокса
|
|||
|
Service updatedService = new Service
|
|||
|
{
|
|||
|
Id = selectedRowId,
|
|||
|
Title = textBoxTitle.Text,
|
|||
|
Cost = decimal.Parse(textBoxCost.Text),
|
|||
|
EmployeesId = ((Employee)comboBoxEmployeesId.SelectedItem).Id,
|
|||
|
};
|
|||
|
|
|||
|
// Обновляем услуги в базе данных
|
|||
|
bd.UpdateService(updatedService);
|
|||
|
|
|||
|
// Перезагружаем данные в таблицу
|
|||
|
loadData();
|
|||
|
}
|
|||
|
|
|||
|
private void buttonDelete_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
// Получаем Id выбранной строки
|
|||
|
int selectedRowId = (int)dataGridView.SelectedRows[0].Cells["Id"].Value;
|
|||
|
|
|||
|
// Удаляем услуги из базы данных
|
|||
|
bd.DeleteService(selectedRowId);
|
|||
|
|
|||
|
// Перезагружаем данные в таблицу
|
|||
|
loadData();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
|
|||
|
{
|
|||
|
if (e.RowIndex >= 0)
|
|||
|
{
|
|||
|
DataGridViewRow row = dataGridView.Rows[e.RowIndex];
|
|||
|
|
|||
|
// Заполняем текстовые поля данными из выбранной строки
|
|||
|
textBoxTitle.Text = row.Cells["Title"].Value.ToString();
|
|||
|
textBoxCost.Text = row.Cells["Cost"].Value.ToString();
|
|||
|
|
|||
|
// Получаем значение сотрудника из выбранной строки
|
|||
|
int employeeId = Convert.ToInt32(row.Cells["EmployeesId"].Value);
|
|||
|
|
|||
|
// Выбираем сотрудника с данным employeeId в комбо-боксе
|
|||
|
comboBoxEmployeesId.SelectedValue = employeeId;
|
|||
|
}
|
|||
|
}
|
|||
|
private void FormService_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
// Заполнение comboBoxClientId данными из БД
|
|||
|
comboBoxEmployeesId.DataSource = bd.GetEmployees();
|
|||
|
comboBoxEmployeesId.DisplayMember = "Name";
|
|||
|
comboBoxEmployeesId.ValueMember = "Id";
|
|||
|
loadData();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|