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();
|
||
}
|
||
}
|
||
}
|