PIbd-21_Afanasev_S.S_SUBD_C.../ComputerFirm/Forms/FormService.cs

118 lines
4.6 KiB
C#
Raw Permalink Normal View History

2024-05-06 22:17:29 +04:00
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();
}
}
}