161 lines
6.7 KiB
C#
161 lines
6.7 KiB
C#
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();
|
||
}
|
||
}
|
||
}
|