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

161 lines
6.7 KiB
C#
Raw Permalink Normal View History

2024-05-06 22:17:29 +04:00
using database;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Forms
{
public partial class FormDevice : Form
{
private Abstractions bd;
public FormDevice(Abstractions _bd)
{
InitializeComponent();
bd = _bd;
}
private void loadData()
{
// Получаем список девайсов
List<Device> devices = bd.GetDevices();
// Очищаем dataGridView перед заполнением новыми данными
dataGridView.Rows.Clear();
// Предварительно определяем столбцы, если это не было сделано ранее
if (dataGridView.ColumnCount == 0)
{
dataGridView.Columns.Add("Id", "ID");
dataGridView.Columns.Add("TypeDevice", "TypeDevice");
dataGridView.Columns.Add("Model", "Model");
dataGridView.Columns.Add("SerialNumber", "SerialNumber");
dataGridView.Columns.Add("ClientId", "ClientId");
dataGridView.Columns["ClientId"].Visible = false;
dataGridView.Columns.Add("Client", "Client");
dataGridView.Columns.Add("OrderId", "OrderId");
dataGridView.Columns["OrderId"].Visible = false;
dataGridView.Columns.Add("Order", "Order");
}
// Заполняем dataGridView данными из списка девайсов
foreach (Device device in devices)
{
dataGridView.Rows.Add(device.Id,
device.TypeDevice, device.Model, device.SerialNumber,
device.ClientId,
bd.GetClientById(device.ClientId).Name,
device.OrderId,
bd.GetOrderById(device.OrderId).EndCost);
}
}
private void buttonCreate_Click(object sender, EventArgs e)
{
// Создаем новый объект Device и заполняем его данными из текстовых полей и комбо-боксов
Device newDevice = new Device
{
TypeDevice = textBoxTypeDevice.Text,
Model = textBoxModel.Text,
SerialNumber = textBoxSerialNumber.Text,
ClientId = ((Client)comboBoxClientId.SelectedItem).Id,
OrderId = ((Order)comboBoxOrderId.SelectedItem).Id
};
// Вызываем метод добавления нового девайса в базу данных
bd.AddDevice(newDevice);
// Обновляем dataGridView
loadData();
}
private void buttonUpdate_Click(object sender, EventArgs e)
{
if (dataGridView.SelectedRows.Count > 0)
{
// Получаем индекс выбранной строки
int rowIndex = dataGridView.CurrentCell.RowIndex;
// Получаем ID редактируемого автомобиля из выбранной строки dataGridView
int deviceId = (int)dataGridView.Rows[rowIndex].Cells["Id"].Value;
// Создаем объект Device и заполняем его данными из текстовых полей и комбо-боксов
Device updatedDevice = new Device
{
Id = deviceId,
TypeDevice = textBoxTypeDevice.Text,
Model = textBoxModel.Text,
SerialNumber = textBoxSerialNumber.Text,
ClientId = ((Client)comboBoxClientId.SelectedItem).Id,
OrderId = ((Order)comboBoxOrderId.SelectedItem).Id
};
// Вызываем метод обновления девайса в базе данных
bd.UpdateDevice(updatedDevice);
// Обновляем dataGridView
loadData();
}
}
private void buttonDelete_Click(object sender, EventArgs e)
{
if (dataGridView.SelectedRows.Count > 0)
{
// Получаем индекс выбранной строки
int rowIndex = dataGridView.CurrentCell.RowIndex;
// Получаем ID удаляемого девайса из выбранной строки dataGridView
int deviceId = (int)dataGridView.Rows[rowIndex].Cells["Id"].Value;
// Вызываем метод удаления девайса из базы данных
bd.DeleteDevice(deviceId);
// Обновляем dataGridView
loadData();
}
}
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridViewRow row = dataGridView.Rows[e.RowIndex];
// Заполняем текстовые поля данными из выбранной строки
textBoxTypeDevice.Text = row.Cells["TypeDevice"].Value.ToString();
textBoxModel.Text = row.Cells["Model"].Value.ToString();
textBoxSerialNumber.Text = row.Cells["SerialNumber"].Value.ToString();
// Получаем значения для комбо-боксов из выбранной строки
int clientId = Convert.ToInt32(row.Cells["ClientId"].Value);
int orderId = Convert.ToInt32(row.Cells["OrderId"].Value);
// Устанавливаем выбранные значения в комбо-боксы
comboBoxClientId.SelectedValue = clientId;
comboBoxOrderId.SelectedValue = orderId;
}
}
private void FormDevice_Load(object sender, EventArgs e)
{
// Заполнение comboBoxClientId данными из БД
comboBoxClientId.DataSource = bd.GetClients();
comboBoxClientId.DisplayMember = "Name";
comboBoxClientId.ValueMember = "Id";
// Заполнение comboBoxOrderId данными из БД
comboBoxOrderId.DataSource = bd.GetOrders();
comboBoxOrderId.DisplayMember = "Title";
comboBoxOrderId.ValueMember = "Id";
// Загрузка данных в dataGridView
loadData();
}
}
}