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

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