PIbd-22. Shabunov O.A. Lab work 08 #14
44
AutoWorkshopView/DataGridViewExtension.cs
Normal file
44
AutoWorkshopView/DataGridViewExtension.cs
Normal file
@ -0,0 +1,44 @@
|
||||
using AutoWorkshopContracts.Attrubites;
|
||||
|
||||
namespace AutoWorkshopView
|
||||
{
|
||||
public static class DataGridViewExtension
|
||||
{
|
||||
public static void FillAndConfigGrid<T>(this DataGridView Grid, List<T>? Data)
|
||||
{
|
||||
if (Data == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Grid.DataSource = Data;
|
||||
|
||||
var Type = typeof(T);
|
||||
var Properties = Type.GetProperties();
|
||||
foreach (DataGridViewColumn Column in Grid.Columns)
|
||||
{
|
||||
var Property = Properties.FirstOrDefault(x => x.Name == Column.Name);
|
||||
if (Property == null)
|
||||
throw new InvalidOperationException($"В типе {Type.Name} не найдено свойство с именем {Column.Name}");
|
||||
|
||||
var Attribute = Property.GetCustomAttributes(typeof(ColumnAttribute), true)?.SingleOrDefault();
|
||||
if (Attribute == null)
|
||||
throw new InvalidOperationException($"Не найден атрибут типа ColumnAttribute для свойства {Property.Name}");
|
||||
|
||||
if (Attribute is ColumnAttribute СolumnAttr)
|
||||
{
|
||||
Column.HeaderText = СolumnAttr.Title;
|
||||
Column.Visible = СolumnAttr.Visible;
|
||||
|
||||
if (СolumnAttr.IsUseAutoSize)
|
||||
{
|
||||
Column.AutoSizeMode = (DataGridViewAutoSizeColumnMode)Enum.Parse(typeof(DataGridViewAutoSizeColumnMode), СolumnAttr.GridViewAutoSize.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
Column.Width = СolumnAttr.Width;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -21,17 +21,7 @@ namespace AutoWorkshopView.Forms
|
||||
{
|
||||
try
|
||||
{
|
||||
var List = _clientLogic.ReadList(null);
|
||||
|
||||
if (List != null)
|
||||
{
|
||||
DataGridView.DataSource = List;
|
||||
DataGridView.Columns["Id"].Visible = false;
|
||||
DataGridView.Columns["ClientFIO"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
DataGridView.Columns["Email"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
DataGridView.Columns["Password"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
}
|
||||
|
||||
DataGridView.FillAndConfigGrid(_clientLogic.ReadList(null));
|
||||
_logger.LogInformation("Загрузка клиентов");
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
@ -25,15 +25,7 @@ namespace AutoWorkshopView.Forms
|
||||
{
|
||||
try
|
||||
{
|
||||
var List = _logic.ReadList(null);
|
||||
|
||||
if (List != null)
|
||||
{
|
||||
DataGridView.DataSource = List;
|
||||
DataGridView.Columns["Id"].Visible = false;
|
||||
DataGridView.Columns["ComponentName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
}
|
||||
|
||||
DataGridView.FillAndConfigGrid(_logic.ReadList(null));
|
||||
_logger.LogInformation("Загрузка компонентов");
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
@ -21,15 +21,7 @@ namespace AutoWorkshopView.Forms
|
||||
{
|
||||
try
|
||||
{
|
||||
var List = _implementerLogic.ReadList(null);
|
||||
|
||||
if (List != null)
|
||||
{
|
||||
DataGridView.DataSource = List;
|
||||
DataGridView.Columns["Id"].Visible = false;
|
||||
DataGridView.Columns["ImplementerFIO"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
}
|
||||
|
||||
DataGridView.FillAndConfigGrid(_implementerLogic.ReadList(null));
|
||||
_logger.LogInformation("Загрузка исполнителей");
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
@ -20,16 +20,7 @@ namespace AutoWorkshopView.Forms
|
||||
{
|
||||
try
|
||||
{
|
||||
var List = _messageLogic.ReadList(null);
|
||||
|
||||
if (List != null)
|
||||
{
|
||||
DataGridView.DataSource = List;
|
||||
DataGridView.Columns["MessageId"].Visible = false;
|
||||
DataGridView.Columns["ClientId"].Visible = false;
|
||||
DataGridView.Columns["Body"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
}
|
||||
|
||||
DataGridView.FillAndConfigGrid(_messageLogic.ReadList(null));
|
||||
_logger.LogInformation("Загрузка почтовых собщений");
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
@ -26,17 +26,8 @@ namespace AutoWorkshopView.Forms
|
||||
{
|
||||
try
|
||||
{
|
||||
var List = _logic.ReadList(null);
|
||||
|
||||
if (List != null)
|
||||
{
|
||||
DataGridView.DataSource = List;
|
||||
DataGridView.Columns["Id"].Visible = false;
|
||||
DataGridView.Columns["RepairName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
DataGridView.Columns["RepairComponents"].Visible = false;
|
||||
}
|
||||
|
||||
_logger.LogInformation("Загрузка ремонта");
|
||||
DataGridView.FillAndConfigGrid(_logic.ReadList(null));
|
||||
_logger.LogInformation("Загрузка ремонта");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -3,7 +3,6 @@ using AutoWorkshopContracts.BusinessLogicContracts;
|
||||
using AutoWorkshopContracts.BusinessLogicsContracts;
|
||||
using AutoWorkshopView.Forms;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AutoWorkshopView
|
||||
{
|
||||
@ -32,22 +31,11 @@ namespace AutoWorkshopView
|
||||
private void LoadData()
|
||||
{
|
||||
_logger.LogInformation("Загрузка заказов");
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
var List = _orderLogic.ReadList(null);
|
||||
|
||||
if (List != null)
|
||||
{
|
||||
DataGridView.DataSource = List;
|
||||
DataGridView.Columns["RepairId"].Visible = false;
|
||||
DataGridView.Columns["ClientId"].Visible = false;
|
||||
DataGridView.Columns["ClientEmail"].Visible = false;
|
||||
DataGridView.Columns["ImplementerId"].Visible = false;
|
||||
DataGridView.Columns["RepairName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
}
|
||||
|
||||
_logger.LogInformation("Загрузка заказов");
|
||||
DataGridView.FillAndConfigGrid(_orderLogic.ReadList(null));
|
||||
_logger.LogInformation("Загрузка заказов");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user