ISE-22. Aparyan L.M. LabWork 06 base #7

Closed
LuizaAparyan wants to merge 2 commits from LabWork06 into LabWork05
8 changed files with 485 additions and 439 deletions
Showing only changes of commit c212e3bad0 - Show all commits

View File

@ -14,6 +14,7 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\MotorPlantContracts\MotorPlantContracts.csproj" /> <ProjectReference Include="..\..\MotorPlantContracts\MotorPlantContracts.csproj" />
<ProjectReference Include="..\..\MotorPlantDataModels\MotorPlantDataModels.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -1,4 +1,4 @@
@using MotorPlantContracts.ViewModels @using MotorPlantContracts.VeiwModels
@model List<OrderViewModel> @model List<OrderViewModel>

View File

@ -5,5 +5,6 @@
"Microsoft.AspNetCore": "Warning" "Microsoft.AspNetCore": "Warning"
} }
}, },
"AllowedHosts": "*" "AllowedHosts": "*",
"IPAddress": "http://localhost:5114/"
} }

View File

@ -3,84 +3,83 @@ using MotorPlantContracts.BindingModels;
using MotorPlantContracts.SearchModels; using MotorPlantContracts.SearchModels;
using MotorPlantContracts.StoragesContracts; using MotorPlantContracts.StoragesContracts;
using MotorPlantContracts.VeiwModels; using MotorPlantContracts.VeiwModels;
using MotorPlantContracts.ViewModels;
using MotorPlantDatabaseImplement.Models; using MotorPlantDatabaseImplement.Models;
namespace MotorPlantDatabaseImplement.Implements namespace MotorPlantDatabaseImplement.Implements
{ {
public class OrderStorage : IOrderStorage public class OrderStorage : IOrderStorage
{ {
public OrderViewModel? Delete(OrderBindingModel model) public List<OrderViewModel> GetFullList()
{ {
using var context = new MotorPlantDatabase(); using var context = new MotorPlantDatabase();
var element = context.Orders.FirstOrDefault(rec => rec.Id == model.Id); return context.Orders.Include(x => x.Engine)
if (element != null) .Include(x => x.Client).Include(x => x.Implementer).Select(x => x.GetViewModel)
{ .ToList();
context.Orders.Remove(element); }
context.SaveChanges(); public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
return element.GetViewModel; {
} using var context = new MotorPlantDatabase();
return null; return context.Orders
} .Include(x => x.Engine)
.Include(x => x.Client).Include(x => x.Implementer).Where(x => (
public OrderViewModel? GetElement(OrderSearchModel model) (!model.Id.HasValue || x.Id == model.Id) &&
{ (!model.DateFrom.HasValue || x.DateCreate >= model.DateFrom) &&
if (!model.Id.HasValue) (!model.DateTo.HasValue || x.DateCreate <= model.DateTo)
{ &&
return null; (!model.ClientId.HasValue || x.ClientId == model.ClientId)
} &&
using var context = new MotorPlantDatabase(); (!model.Status.HasValue || x.Status == model.Status)
return context.Orders.FirstOrDefault(x => (model.Id.HasValue && x.Id == model.Id))?.GetViewModel; )
} )
.Select(x => x.GetViewModel)
public List<OrderViewModel> GetFilteredList(OrderSearchModel model) .ToList();
{ }
if (!model.Id.HasValue && !model.DateFrom.HasValue) public OrderViewModel? GetElement(OrderSearchModel model)
{ {
return new(); using var context = new MotorPlantDatabase();
} return context.Orders.Include(x => x.Engine).Include(x => x.Client).Include(x => x.Implementer).FirstOrDefault(
using var context = new MotorPlantDatabase(); x => ((model.Id.HasValue && x.Id == model.Id) ||
if (model.DateFrom.HasValue) (model.ImplementerId.HasValue && model.Status.HasValue &&
{ x.ImplementerId == model.ImplementerId && x.Status == model.Status)))?.GetViewModel;
return context.Orders }
.Include(x => x.Engine) public OrderViewModel? Insert(OrderBindingModel model)
.Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo) {
.Select(x => x.GetViewModel) using var context = new MotorPlantDatabase();
.ToList(); var newOrder = Order.Create(context, model);
} if (newOrder == null)
return context.Orders {
.Include(x => x.Engine) return null;
.Where(x => x.Id == model.Id) }
.Select(x => x.GetViewModel) context.Orders.Add(newOrder);
.ToList(); context.SaveChanges();
} return newOrder.GetViewModel;
public List<OrderViewModel> GetFullList() }
{ public OrderViewModel? Update(OrderBindingModel model)
using var context = new MotorPlantDatabase(); {
return context.Orders.Select(x => x.GetViewModel).ToList(); using var context = new MotorPlantDatabase();
} var order = context.Orders.Include(x => x.Engine).Include(x => x.Client).Include(x => x.Implementer).FirstOrDefault(x => x.Id ==
public OrderViewModel? Insert(OrderBindingModel model) model.Id);
{ if (order == null)
var newOrder = Order.Create(model); {
if (newOrder == null) return null;
{ }
return null; order.Update(model);
} context.SaveChanges();
using var context = new MotorPlantDatabase(); return order.GetViewModel;
context.Orders.Add(newOrder); }
context.SaveChanges(); public OrderViewModel? Delete(OrderBindingModel model)
return newOrder.GetViewModel; {
} using var context = new MotorPlantDatabase();
public OrderViewModel? Update(OrderBindingModel model) var element = context.Orders.FirstOrDefault(rec => rec.Id ==
{ model.Id);
using var context = new MotorPlantDatabase(); if (element != null)
var order = context.Orders.FirstOrDefault(x => x.Id == model.Id); {
if (order == null) context.Orders.Remove(element);
{ context.SaveChanges();
return null; return element.GetViewModel;
} }
order.Update(model); return null;
context.SaveChanges(); }
return order.GetViewModel; }
}
}
} }

View File

@ -1,11 +1,14 @@
namespace MotorPlantContracts.SearchModels using MotorPlantDataModels.Enums;
namespace MotorPlantContracts.SearchModels
{ {
public class OrderSearchModel public class OrderSearchModel
{ {
public int? Id { get; set; } public int? Id { get; set; }
public int? ClientId { get; set; } public int? ClientId { get; set; }
public int? ImplementerId { get; set; } public int? ImplementerId { get; set; }
public DateTime? DateFrom { get; set; } public OrderStatus? Status { get; set; }
public DateTime? DateTo { get; set; } public DateTime? DateFrom { get; set; }
} public DateTime? DateTo { get; set; }
}
} }

View File

@ -9,16 +9,15 @@ namespace MotorPlantContracts.VeiwModels
public int Id { get; set; } public int Id { get; set; }
public int EngineId { get; set; } public int EngineId { get; set; }
public int ClientId { get; set; } public int ClientId { get; set; }
public int? ImplementerId { get; set; } = null;
[DisplayName("Клиент")] [DisplayName("Клиент")]
public int? ImplementerId { get; set; } = null; public string ClientFIO { get; set; } = string.Empty;
[DisplayName("Клиент")]
public string ClientFIO { get; set; } = string.Empty;
[DisplayName("Двигатель")] [DisplayName("Двигатель")]
public string EngineName { get; set; } = string.Empty; public string EngineName { get; set; } = string.Empty;
[DisplayName("Исполнитель")]
public string ImplementerFIO { get; set; } = string.Empty;
[DisplayName("Количество")] [DisplayName("Количество")]
public string ImplementerFIO { get; set; } = string.Empty; public int Count { get; set; }
[DisplayName("Количество")]
public int Count { get; set; }
[DisplayName("Сумма")] [DisplayName("Сумма")]
public double Sum { get; set; } public double Sum { get; set; }
[DisplayName("Статус")] [DisplayName("Статус")]

View File

@ -20,189 +20,206 @@
base.Dispose(disposing); base.Dispose(disposing);
} }
#region Windows Form Designer generated code #region Windows Form Designer generated code
/// <summary> /// <summary>
/// Required method for Designer support - do not modify /// Required method for Designer support - do not modify
/// the contents of this method with the code editor. /// the contents of this method with the code editor.
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
toolStrip1 = new ToolStrip(); toolStrip1 = new ToolStrip();
toolStripDropDownButton1 = new ToolStripDropDownButton(); toolStripDropDownButton1 = new ToolStripDropDownButton();
КомпонентыToolStripMenuItem = new ToolStripMenuItem(); КомпонентыToolStripMenuItem = new ToolStripMenuItem();
ДвигателиToolStripMenuItem = new ToolStripMenuItem(); ДвигателиToolStripMenuItem = new ToolStripMenuItem();
клиентыToolStripMenuItem = new ToolStripMenuItem(); клиентыToolStripMenuItem = new ToolStripMenuItem();
ReportsToolStripMenuItem = new ToolStripMenuItem(); ReportsToolStripMenuItem = new ToolStripMenuItem();
ListComponentsToolStripMenuItem = new ToolStripMenuItem(); ListComponentsToolStripMenuItem = new ToolStripMenuItem();
EngineComponentsToolStripMenuItem = new ToolStripMenuItem(); EngineComponentsToolStripMenuItem = new ToolStripMenuItem();
ListOrdersToolStripMenuItem = new ToolStripMenuItem(); ListOrdersToolStripMenuItem = new ToolStripMenuItem();
buttonCreateOrder = new Button(); исполнителиToolStripMenuItem = new ToolStripMenuItem();
buttonTakeOrderInWork = new Button(); запускРаботToolStripMenuItem = new ToolStripMenuItem();
buttonOrderReady = new Button(); buttonCreateOrder = new Button();
buttonIssuedOrder = new Button(); buttonTakeOrderInWork = new Button();
buttonRef = new Button(); buttonOrderReady = new Button();
dataGridView = new DataGridView(); buttonIssuedOrder = new Button();
toolStrip1.SuspendLayout(); buttonRef = new Button();
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit(); dataGridView = new DataGridView();
SuspendLayout(); исполнителиToolStripMenuItem1 = new ToolStripMenuItem();
// toolStrip1.SuspendLayout();
// toolStrip1 ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
// SuspendLayout();
toolStrip1.ImageScalingSize = new Size(20, 20); //
toolStrip1.Items.AddRange(new ToolStripItem[] { toolStripDropDownButton1, ReportsToolStripMenuItem }); // toolStrip1
toolStrip1.Location = new Point(0, 0); //
toolStrip1.Name = "toolStrip1"; toolStrip1.ImageScalingSize = new Size(20, 20);
toolStrip1.Size = new Size(996, 25); toolStrip1.Items.AddRange(new ToolStripItem[] { toolStripDropDownButton1, ReportsToolStripMenuItem });
toolStrip1.TabIndex = 0; toolStrip1.Location = new Point(0, 0);
toolStrip1.Text = "toolStrip1"; toolStrip1.Name = "toolStrip1";
// toolStrip1.Size = new Size(996, 25);
// toolStripDropDownButton1 toolStrip1.TabIndex = 0;
// toolStrip1.Text = "toolStrip1";
toolStripDropDownButton1.DisplayStyle = ToolStripItemDisplayStyle.Text; //
toolStripDropDownButton1.DropDownItems.AddRange(new ToolStripItem[] { КомпонентыToolStripMenuItem, ДвигателиToolStripMenuItem, клиентыToolStripMenuItem }); // toolStripDropDownButton1
toolStripDropDownButton1.ImageTransparentColor = Color.Magenta; //
toolStripDropDownButton1.Name = "toolStripDropDownButton1"; toolStripDropDownButton1.DisplayStyle = ToolStripItemDisplayStyle.Text;
toolStripDropDownButton1.Size = new Size(90, 22); toolStripDropDownButton1.DropDownItems.AddRange(new ToolStripItem[] { КомпонентыToolStripMenuItem, ДвигателиToolStripMenuItem, клиентыToolStripMenuItem, исполнителиToolStripMenuItem1 });
toolStripDropDownButton1.Text = "Справочник"; toolStripDropDownButton1.ImageTransparentColor = Color.Magenta;
// toolStripDropDownButton1.Name = "toolStripDropDownButton1";
// КомпонентыToolStripMenuItem toolStripDropDownButton1.Size = new Size(90, 22);
// toolStripDropDownButton1.Text = "Справочник";
КомпонентыToolStripMenuItem.Name = "КомпонентыToolStripMenuItem"; //
КомпонентыToolStripMenuItem.Size = new Size(148, 22); // КомпонентыToolStripMenuItem
КомпонентыToolStripMenuItem.Text = "Компоненты"; //
КомпонентыToolStripMenuItem.Click += КомпонентыToolStripMenuItem_Click; КомпонентыToolStripMenuItem.Name = "КомпонентыToolStripMenuItem";
// КомпонентыToolStripMenuItem.Size = new Size(180, 22);
// ДвигателиToolStripMenuItem КомпонентыToolStripMenuItem.Text = "Компоненты";
// КомпонентыToolStripMenuItem.Click += КомпонентыToolStripMenuItem_Click;
ДвигателиToolStripMenuItem.Name = "ДвигателиToolStripMenuItem"; //
ДвигателиToolStripMenuItem.Size = new Size(148, 22); // ДвигателиToolStripMenuItem
ДвигателиToolStripMenuItem.Text = "Двигатели"; //
ДвигателиToolStripMenuItem.Click += ИзделияToolStripMenuItem_Click; ДвигателиToolStripMenuItem.Name = "ДвигателиToolStripMenuItem";
// ДвигателиToolStripMenuItem.Size = new Size(180, 22);
// клиентыToolStripMenuItem ДвигателиToolStripMenuItem.Text = "Двигатели";
// ДвигателиToolStripMenuItem.Click += ИзделияToolStripMenuItem_Click;
клиентыToolStripMenuItem.Name = "клиентыToolStripMenuItem"; //
клиентыToolStripMenuItem.Size = new Size(148, 22); // клиентыToolStripMenuItem
клиентыToolStripMenuItem.Text = "Клиенты"; //
клиентыToolStripMenuItem.Click += клиентыToolStripMenuItem_Click; клиентыToolStripMenuItem.Name = "клиентыToolStripMenuItem";
// клиентыToolStripMenuItem.Size = new Size(180, 22);
// ReportsToolStripMenuItem клиентыToolStripMenuItem.Text = "Клиенты";
// клиентыToolStripMenuItem.Click += клиентыToolStripMenuItem_Click;
ReportsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ListComponentsToolStripMenuItem, EngineComponentsToolStripMenuItem, ListOrdersToolStripMenuItem }); //
ReportsToolStripMenuItem.Name = "ReportsToolStripMenuItem"; // ReportsToolStripMenuItem
ReportsToolStripMenuItem.Size = new Size(62, 25); //
ReportsToolStripMenuItem.Text = "Отчеты"; ReportsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ListComponentsToolStripMenuItem, EngineComponentsToolStripMenuItem, ListOrdersToolStripMenuItem });
// ReportsToolStripMenuItem.Name = "ReportsToolStripMenuItem";
// ListComponentsToolStripMenuItem ReportsToolStripMenuItem.Size = new Size(62, 25);
// ReportsToolStripMenuItem.Text = "Отчеты";
ListComponentsToolStripMenuItem.Name = "ListComponentsToolStripMenuItem"; //
ListComponentsToolStripMenuItem.Size = new Size(236, 22); // ListComponentsToolStripMenuItem
ListComponentsToolStripMenuItem.Text = "Список компонентов"; //
ListComponentsToolStripMenuItem.Click += списокКомпонентовToolStripMenuItem_Click; ListComponentsToolStripMenuItem.Name = "ListComponentsToolStripMenuItem";
// ListComponentsToolStripMenuItem.Size = new Size(236, 22);
// EngineComponentsToolStripMenuItem ListComponentsToolStripMenuItem.Text = "Список компонентов";
// ListComponentsToolStripMenuItem.Click += списокКомпонентовToolStripMenuItem_Click;
EngineComponentsToolStripMenuItem.Name = "EngineComponentsToolStripMenuItem"; //
EngineComponentsToolStripMenuItem.Size = new Size(236, 22); // EngineComponentsToolStripMenuItem
EngineComponentsToolStripMenuItem.Text = "Компоненты по двигателям"; //
EngineComponentsToolStripMenuItem.Click += компонентыПоДвигателямToolStripMenuItem_Click; EngineComponentsToolStripMenuItem.Name = "EngineComponentsToolStripMenuItem";
// EngineComponentsToolStripMenuItem.Size = new Size(236, 22);
// ListOrdersToolStripMenuItem EngineComponentsToolStripMenuItem.Text = "Компоненты по двигателям";
// EngineComponentsToolStripMenuItem.Click += компонентыПоДвигателямToolStripMenuItem_Click;
ListOrdersToolStripMenuItem.Name = "ListOrdersToolStripMenuItem"; //
ListOrdersToolStripMenuItem.Size = new Size(236, 22); // ListOrdersToolStripMenuItem
ListOrdersToolStripMenuItem.Text = "Список заказов"; //
ListOrdersToolStripMenuItem.Click += списокЗаказовToolStripMenuItem_Click; ListOrdersToolStripMenuItem.Name = "ListOrdersToolStripMenuItem";
// ListOrdersToolStripMenuItem.Size = new Size(236, 22);
// buttonCreateOrder ListOrdersToolStripMenuItem.Text = "Список заказов";
// ListOrdersToolStripMenuItem.Click += списокЗаказовToolStripMenuItem_Click;
buttonCreateOrder.Location = new Point(879, 57); //
buttonCreateOrder.Name = "buttonCreateOrder"; // запускРаботToolStripMenuItem
buttonCreateOrder.Size = new Size(105, 38); //
buttonCreateOrder.TabIndex = 1; запускРаботToolStripMenuItem.Name = апускРаботToolStripMenuItem";
buttonCreateOrder.Text = "Создать заказ"; запускРаботToolStripMenuItem.Size = new Size(93, 25);
buttonCreateOrder.UseVisualStyleBackColor = true; запускРаботToolStripMenuItem.Text = "Запуск работ";
buttonCreateOrder.Click += buttonCreateOrder_Click; запускРаботToolStripMenuItem.Click += запускРаботToolStripMenuItem_Click;
// //
// buttonTakeOrderInWork // buttonCreateOrder
// //
buttonTakeOrderInWork.Location = new Point(879, 101); buttonCreateOrder.Location = new Point(879, 57);
buttonTakeOrderInWork.Name = "buttonTakeOrderInWork"; buttonCreateOrder.Name = "buttonCreateOrder";
buttonTakeOrderInWork.Size = new Size(105, 46); buttonCreateOrder.Size = new Size(105, 38);
buttonTakeOrderInWork.TabIndex = 2; buttonCreateOrder.TabIndex = 1;
buttonTakeOrderInWork.Text = "Отдать на выполнение"; buttonCreateOrder.Text = "Создать заказ";
buttonTakeOrderInWork.UseVisualStyleBackColor = true; buttonCreateOrder.UseVisualStyleBackColor = true;
buttonTakeOrderInWork.Click += buttonTakeOrderInWork_Click; buttonCreateOrder.Click += buttonCreateOrder_Click;
// //
// buttonOrderReady // buttonTakeOrderInWork
// //
buttonOrderReady.Location = new Point(879, 153); buttonTakeOrderInWork.Location = new Point(879, 101);
buttonOrderReady.Name = "buttonOrderReady"; buttonTakeOrderInWork.Name = "buttonTakeOrderInWork";
buttonOrderReady.Size = new Size(105, 43); buttonTakeOrderInWork.Size = new Size(105, 46);
buttonOrderReady.TabIndex = 3; buttonTakeOrderInWork.TabIndex = 2;
buttonOrderReady.Text = "Заказ готов"; buttonTakeOrderInWork.Text = "Отдать на выполнение";
buttonOrderReady.UseVisualStyleBackColor = true; buttonTakeOrderInWork.UseVisualStyleBackColor = true;
buttonOrderReady.Click += buttonOrderReady_Click; buttonTakeOrderInWork.Click += buttonTakeOrderInWork_Click;
// //
// buttonIssuedOrder // buttonOrderReady
// //
buttonIssuedOrder.Location = new Point(879, 202); buttonOrderReady.Location = new Point(879, 153);
buttonIssuedOrder.Name = "buttonIssuedOrder"; buttonOrderReady.Name = "buttonOrderReady";
buttonIssuedOrder.Size = new Size(105, 40); buttonOrderReady.Size = new Size(105, 43);
buttonIssuedOrder.TabIndex = 4; buttonOrderReady.TabIndex = 3;
buttonIssuedOrder.Text = "Заказ выдан"; buttonOrderReady.Text = "Заказ готов";
buttonIssuedOrder.UseVisualStyleBackColor = true; buttonOrderReady.UseVisualStyleBackColor = true;
buttonIssuedOrder.Click += buttonIssuedOrder_Click; buttonOrderReady.Click += buttonOrderReady_Click;
// //
// buttonRef // buttonIssuedOrder
// //
buttonRef.Location = new Point(879, 248); buttonIssuedOrder.Location = new Point(879, 202);
buttonRef.Name = "buttonRef"; buttonIssuedOrder.Name = "buttonIssuedOrder";
buttonRef.Size = new Size(105, 42); buttonIssuedOrder.Size = new Size(105, 40);
buttonRef.TabIndex = 5; buttonIssuedOrder.TabIndex = 4;
buttonRef.Text = "Обновить список"; buttonIssuedOrder.Text = "Заказ выдан";
buttonRef.UseVisualStyleBackColor = true; buttonIssuedOrder.UseVisualStyleBackColor = true;
buttonRef.Click += buttonRef_Click; buttonIssuedOrder.Click += buttonIssuedOrder_Click;
// //
// dataGridView // buttonRef
// //
dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; buttonRef.Location = new Point(879, 248);
dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; buttonRef.Name = "buttonRef";
dataGridView.Location = new Point(0, 26); buttonRef.Size = new Size(105, 42);
dataGridView.Name = "dataGridView"; buttonRef.TabIndex = 5;
dataGridView.ReadOnly = true; buttonRef.Text = "Обновить список";
dataGridView.RowHeadersWidth = 51; buttonRef.UseVisualStyleBackColor = true;
dataGridView.RowTemplate.Height = 24; buttonRef.Click += buttonRef_Click;
dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //
dataGridView.Size = new Size(873, 435); // dataGridView
dataGridView.TabIndex = 6; //
// dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
// FormMain dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
// dataGridView.Location = new Point(0, 26);
AutoScaleDimensions = new SizeF(7F, 15F); dataGridView.Name = "dataGridView";
AutoScaleMode = AutoScaleMode.Font; dataGridView.ReadOnly = true;
ClientSize = new Size(996, 461); dataGridView.RowHeadersWidth = 51;
Controls.Add(dataGridView); dataGridView.RowTemplate.Height = 24;
Controls.Add(buttonRef); dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
Controls.Add(buttonIssuedOrder); dataGridView.Size = new Size(873, 435);
Controls.Add(buttonOrderReady); dataGridView.TabIndex = 6;
Controls.Add(buttonTakeOrderInWork); //
Controls.Add(buttonCreateOrder); // исполнителиToolStripMenuItem1
Controls.Add(toolStrip1); //
Name = "FormMain"; исполнителиToolStripMenuItem1.Name = сполнителиToolStripMenuItem1";
Text = "Моторный завод"; исполнителиToolStripMenuItem1.Size = new Size(180, 22);
Load += FormMain_Load; исполнителиToolStripMenuItem1.Text = "Исполнители";
toolStrip1.ResumeLayout(false); исполнителиToolStripMenuItem1.Click += исполнителиToolStripMenuItem1_Click;
toolStrip1.PerformLayout(); //
((System.ComponentModel.ISupportInitialize)dataGridView).EndInit(); // FormMain
ResumeLayout(false); //
PerformLayout(); AutoScaleDimensions = new SizeF(7F, 15F);
} AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(996, 461);
Controls.Add(dataGridView);
Controls.Add(buttonRef);
Controls.Add(buttonIssuedOrder);
Controls.Add(buttonOrderReady);
Controls.Add(buttonTakeOrderInWork);
Controls.Add(buttonCreateOrder);
Controls.Add(toolStrip1);
Name = "FormMain";
Text = "Моторный завод";
Load += FormMain_Load;
toolStrip1.ResumeLayout(false);
toolStrip1.PerformLayout();
((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
ResumeLayout(false);
PerformLayout();
}
#endregion #endregion
private ToolStrip toolStrip1; private ToolStrip toolStrip1;
private Button buttonCreateOrder; private Button buttonCreateOrder;
private Button buttonTakeOrderInWork; private Button buttonTakeOrderInWork;
private Button buttonOrderReady; private Button buttonOrderReady;
@ -217,5 +234,9 @@
private ToolStripMenuItem EngineComponentsToolStripMenuItem; private ToolStripMenuItem EngineComponentsToolStripMenuItem;
private ToolStripMenuItem ListOrdersToolStripMenuItem; private ToolStripMenuItem ListOrdersToolStripMenuItem;
private ToolStripMenuItem клиентыToolStripMenuItem; private ToolStripMenuItem клиентыToolStripMenuItem;
private ToolStripMenuItem запускРаботToolStripMenuItem;
private ToolStripMenuItem исполнителиToolStripMenuItem;
private ToolStripMenuItem исполнителиToolStripMenuItem1;
private ToolStripMenuItem исполнителиToolStripMenuItem_Click;
} }
} }

View File

@ -5,175 +5,179 @@ using MotorPlantBusinessLogic;
namespace MotorPlantView.Forms namespace MotorPlantView.Forms
{ {
public partial class FormMain : Form public partial class FormMain : Form
{ {
private readonly ILogger _logger; private readonly ILogger _logger;
private readonly IOrderLogic _orderLogic; private readonly IOrderLogic _orderLogic;
private readonly IReportLogic _reportLogic; private readonly IReportLogic _reportLogic;
public FormMain(ILogger<FormMain> logger, IOrderLogic orderLogic, IReportLogic reportLogic) private readonly IWorkProcess _workProcess;
{
InitializeComponent();
_logger = logger;
_orderLogic = orderLogic;
_reportLogic = reportLogic;
}
private void FormMain_Load(object sender, EventArgs e)
{
LoadData();
}
private void LoadData()
{
_logger.LogInformation("Загрузка заказов");
try
{
var list = _orderLogic.ReadList(null);
if (list != null) public FormMain(ILogger<FormMain> logger, IOrderLogic orderLogic, IReportLogic reportLogic, IWorkProcess workProcess)
{ {
dataGridView.DataSource = list; InitializeComponent();
dataGridView.Columns["EngineId"].Visible = false; _logger = logger;
dataGridView.Columns["EngineName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; _orderLogic = orderLogic;
} _reportLogic = reportLogic;
_workProcess = workProcess;
}
private void FormMain_Load(object sender, EventArgs e)
{
LoadData();
}
private void LoadData()
{
_logger.LogInformation("Загрузка заказов");
try
{
var list = _orderLogic.ReadList(null);
_logger.LogInformation("Загрузка заказов"); if (list != null)
} {
catch (Exception ex) dataGridView.DataSource = list;
{ dataGridView.Columns["EngineId"].Visible = false;
_logger.LogError(ex, "Ошибка загрузки заказов"); dataGridView.Columns["ImplementerId"].Visible = false;
} dataGridView.Columns["EngineName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
} }
private void КомпонентыToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormComponents));
if (service is FormComponents form)
{
form.ShowDialog();
}
}
private void ИзделияToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormEngines));
if (service is FormEngines form) _logger.LogInformation("Загрузка заказов");
{ }
form.ShowDialog(); catch (Exception ex)
} {
} _logger.LogError(ex, "Ошибка загрузки заказов");
private void buttonCreateOrder_Click(object sender, EventArgs e) }
{ }
var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder)); private void КомпонентыToolStripMenuItem_Click(object sender, EventArgs e)
if (service is FormCreateOrder form) {
{ var service = Program.ServiceProvider?.GetService(typeof(FormComponents));
form.ShowDialog(); if (service is FormComponents form)
LoadData(); {
} form.ShowDialog();
} }
private void buttonTakeOrderInWork_Click(object sender, EventArgs e) }
{ private void ИзделияToolStripMenuItem_Click(object sender, EventArgs e)
if (dataGridView.SelectedRows.Count == 1) {
{ var service = Program.ServiceProvider?.GetService(typeof(FormEngines));
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
_logger.LogInformation("Заказ №{id}. Меняется статус на 'В работе'", id); if (service is FormEngines form)
try {
{ form.ShowDialog();
var operationResult = _orderLogic.TakeOrderInWork(new OrderBindingModel }
{ }
Id = id, private void buttonCreateOrder_Click(object sender, EventArgs e)
}); {
if (!operationResult) var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder));
{ if (service is FormCreateOrder form)
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах."); {
} form.ShowDialog();
LoadData(); LoadData();
} }
catch (Exception ex) }
{ private void buttonTakeOrderInWork_Click(object sender, EventArgs e)
_logger.LogError(ex, "Ошибка передачи заказа в работу"); {
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); if (dataGridView.SelectedRows.Count == 1)
} {
} int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
} _logger.LogInformation("Заказ №{id}. Меняется статус на 'В работе'", id);
private void buttonOrderReady_Click(object sender, EventArgs e) try
{ {
if (dataGridView.SelectedRows.Count == 1) var operationResult = _orderLogic.TakeOrderInWork(new OrderBindingModel
{ {
int id = Id = id,
Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); });
_logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'", id); if (!operationResult)
try {
{ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
var operationResult = _orderLogic.FinishOrder(new OrderBindingModel { Id = id }); }
if (!operationResult) LoadData();
{ }
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах."); catch (Exception ex)
} {
LoadData(); _logger.LogError(ex, "Ошибка передачи заказа в работу");
} MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
catch (Exception ex) }
{ }
_logger.LogError(ex, "Ошибка отметки о готовности заказа"); }
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); private void buttonOrderReady_Click(object sender, EventArgs e)
} {
} if (dataGridView.SelectedRows.Count == 1)
} {
private void buttonIssuedOrder_Click(object sender, EventArgs e) int id =
{ Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
if (dataGridView.SelectedRows.Count == 1) _logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'", id);
{ try
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); {
_logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'", id); var operationResult = _orderLogic.FinishOrder(new OrderBindingModel { Id = id });
try if (!operationResult)
{ {
var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
{ }
Id = id LoadData();
}); }
if (!operationResult) catch (Exception ex)
{ {
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах."); _logger.LogError(ex, "Ошибка отметки о готовности заказа");
} MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
_logger.LogInformation("Заказ №{id} выдан", id); }
LoadData(); }
} }
catch (Exception ex) private void buttonIssuedOrder_Click(object sender, EventArgs e)
{ {
_logger.LogError(ex, "Ошибка отметки о выдачи заказа"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); if (dataGridView.SelectedRows.Count == 1)
} {
} int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
} _logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'", id);
private void buttonRef_Click(object sender, EventArgs e) try
{ {
LoadData(); var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel
} {
private void списокКомпонентовToolStripMenuItem_Click(object sender, EventArgs e) Id = id
{ });
using var dialog = new SaveFileDialog { Filter = "docx|*.docx" }; if (!operationResult)
if (dialog.ShowDialog() == DialogResult.OK) {
{ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
_reportLogic.SaveEnginesToWordFile(new ReportBindingModel }
{ _logger.LogInformation("Заказ №{id} выдан", id);
FileName = dialog.FileName LoadData();
}); }
MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, catch (Exception ex)
MessageBoxIcon.Information); {
} _logger.LogError(ex, "Ошибка отметки о выдачи заказа"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
private void компонентыПоДвигателямToolStripMenuItem_Click(object sender, EventArgs e) }
{ }
var service = Program.ServiceProvider?.GetService(typeof(FormReportEngineComponents)); private void buttonRef_Click(object sender, EventArgs e)
if (service is FormReportEngineComponents form) {
{ LoadData();
form.ShowDialog(); }
} private void списокКомпонентовToolStripMenuItem_Click(object sender, EventArgs e)
} {
private void списокЗаказовToolStripMenuItem_Click(object sender, EventArgs e) using var dialog = new SaveFileDialog { Filter = "docx|*.docx" };
{ if (dialog.ShowDialog() == DialogResult.OK)
var service = Program.ServiceProvider?.GetService(typeof(FormReportOrders)); {
if (service is FormReportOrders form) _reportLogic.SaveEnginesToWordFile(new ReportBindingModel
{ {
form.ShowDialog(); FileName = dialog.FileName
} });
} MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
private void компонентыПоДвигателямToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormReportEngineComponents));
if (service is FormReportEngineComponents form)
{
form.ShowDialog();
}
}
private void списокЗаказовToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormReportOrders));
if (service is FormReportOrders form)
{
form.ShowDialog();
}
}
private void клиентыToolStripMenuItem_Click(object sender, EventArgs e) private void клиентыToolStripMenuItem_Click(object sender, EventArgs e)
{ {
var service = Program.ServiceProvider?.GetService(typeof(FormClients)); var service = Program.ServiceProvider?.GetService(typeof(FormClients));
@ -182,5 +186,23 @@ namespace MotorPlantView.Forms
form.ShowDialog(); form.ShowDialog();
} }
} }
private void запускРаботToolStripMenuItem_Click(object sender, EventArgs e)
{
_workProcess.DoWork((Program.ServiceProvider?.GetService(typeof(IImplementerLogic
)) as IImplementerLogic)!, _orderLogic);
MessageBox.Show("Процесс обработки запущен", "Сообщение",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void исполнителиToolStripMenuItem1_Click(object sender, EventArgs e)
{
var service =
Program.ServiceProvider?.GetService(typeof(ImplementersForm));
if (service is ImplementersForm form)
{
form.ShowDialog();
}
}
} }
} }