PIbd-21_Afanasev_S.S_SUBD_C.../ComputerFirm/Forms/FormService.cs
2024-05-06 22:17:29 +04:00

118 lines
4.6 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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