diff --git a/CarpentryWorkshop/CarpentryWorkshop/FormComponents.Designer.cs b/CarpentryWorkshop/CarpentryWorkshop/FormComponents.Designer.cs
index 659028e..4d121ff 100644
--- a/CarpentryWorkshop/CarpentryWorkshop/FormComponents.Designer.cs
+++ b/CarpentryWorkshop/CarpentryWorkshop/FormComponents.Designer.cs
@@ -28,93 +28,95 @@
///
private void InitializeComponent()
{
- dataGridView = new DataGridView();
- buttonAdd = new Button();
- buttonUpd = new Button();
- buttonDel = new Button();
- buttonRef = new Button();
- ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
- SuspendLayout();
- //
- // dataGridView
- //
- dataGridView.AllowUserToAddRows = false;
- dataGridView.AllowUserToDeleteRows = false;
- dataGridView.BackgroundColor = SystemColors.ControlLightLight;
- dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- dataGridView.Dock = DockStyle.Left;
- dataGridView.Location = new Point(0, 0);
- dataGridView.MultiSelect = false;
- dataGridView.Name = "dataGridView";
- dataGridView.ReadOnly = true;
- dataGridView.RowHeadersVisible = false;
- dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
- dataGridView.Size = new Size(350, 360);
- dataGridView.TabIndex = 0;
- //
- // buttonAdd
- //
- buttonAdd.Location = new Point(410, 32);
- buttonAdd.Name = "buttonAdd";
- buttonAdd.Size = new Size(75, 23);
- buttonAdd.TabIndex = 1;
- buttonAdd.Text = "Добавить";
- buttonAdd.UseVisualStyleBackColor = true;
- buttonAdd.Click += buttonAdd_Click;
- //
- // buttonUpd
- //
- buttonUpd.Location = new Point(410, 70);
- buttonUpd.Name = "buttonUpd";
- buttonUpd.Size = new Size(75, 23);
- buttonUpd.TabIndex = 2;
- buttonUpd.Text = "Изменить";
- buttonUpd.UseVisualStyleBackColor = true;
- buttonUpd.Click += buttonUpd_Click;
- //
- // buttonDel
- //
- buttonDel.Location = new Point(410, 111);
- buttonDel.Name = "buttonDel";
- buttonDel.Size = new Size(75, 23);
- buttonDel.TabIndex = 3;
- buttonDel.Text = "Удалить";
- buttonDel.UseVisualStyleBackColor = true;
- buttonDel.Click += buttonDel_Click;
+ this.buttonRef = new System.Windows.Forms.Button();
+ this.buttonDel = new System.Windows.Forms.Button();
+ this.buttonUpd = new System.Windows.Forms.Button();
+ this.buttonAdd = new System.Windows.Forms.Button();
+ this.dataGridView = new System.Windows.Forms.DataGridView();
+ ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
+ this.SuspendLayout();
//
// buttonRef
//
- buttonRef.Location = new Point(410, 152);
- buttonRef.Name = "buttonRef";
- buttonRef.Size = new Size(75, 23);
- buttonRef.TabIndex = 4;
- buttonRef.Text = "Обновить";
- buttonRef.UseVisualStyleBackColor = true;
- buttonRef.Click += buttonRef_Click;
+ this.buttonRef.Location = new System.Drawing.Point(370, 132);
+ this.buttonRef.Name = "buttonRef";
+ this.buttonRef.Size = new System.Drawing.Size(75, 23);
+ this.buttonRef.TabIndex = 4;
+ this.buttonRef.Text = "Обновить";
+ this.buttonRef.UseVisualStyleBackColor = true;
+ this.buttonRef.Click += new System.EventHandler(this.buttonRef_Click);
+ //
+ // buttonDel
+ //
+ this.buttonDel.Location = new System.Drawing.Point(370, 91);
+ this.buttonDel.Name = "buttonDel";
+ this.buttonDel.Size = new System.Drawing.Size(75, 23);
+ this.buttonDel.TabIndex = 3;
+ this.buttonDel.Text = "Удалить";
+ this.buttonDel.UseVisualStyleBackColor = true;
+ this.buttonDel.Click += new System.EventHandler(this.buttonDel_Click);
+ //
+ // buttonUpd
+ //
+ this.buttonUpd.Location = new System.Drawing.Point(370, 50);
+ this.buttonUpd.Name = "buttonUpd";
+ this.buttonUpd.Size = new System.Drawing.Size(75, 23);
+ this.buttonUpd.TabIndex = 2;
+ this.buttonUpd.Text = "Изменить";
+ this.buttonUpd.UseVisualStyleBackColor = true;
+ this.buttonUpd.Click += new System.EventHandler(this.buttonUpd_Click);
+ //
+ // buttonAdd
+ //
+ this.buttonAdd.Location = new System.Drawing.Point(370, 12);
+ this.buttonAdd.Name = "buttonAdd";
+ this.buttonAdd.Size = new System.Drawing.Size(75, 23);
+ this.buttonAdd.TabIndex = 1;
+ this.buttonAdd.Text = "Добавить";
+ this.buttonAdd.UseVisualStyleBackColor = true;
+ this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click);
+ //
+ // dataGridView
+ //
+ this.dataGridView.AllowUserToAddRows = false;
+ this.dataGridView.AllowUserToDeleteRows = false;
+ this.dataGridView.BackgroundColor = System.Drawing.SystemColors.ControlLightLight;
+ this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.dataGridView.Dock = System.Windows.Forms.DockStyle.Left;
+ this.dataGridView.Location = new System.Drawing.Point(0, 0);
+ this.dataGridView.MultiSelect = false;
+ this.dataGridView.Name = "dataGridView";
+ this.dataGridView.ReadOnly = true;
+ this.dataGridView.RowHeadersVisible = false;
+ this.dataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
+ this.dataGridView.Size = new System.Drawing.Size(350, 312);
+ this.dataGridView.TabIndex = 0;
//
// FormComponents
//
- AutoScaleDimensions = new SizeF(7F, 15F);
- AutoScaleMode = AutoScaleMode.Font;
- ClientSize = new Size(541, 360);
- Controls.Add(buttonRef);
- Controls.Add(buttonDel);
- Controls.Add(buttonUpd);
- Controls.Add(buttonAdd);
- Controls.Add(dataGridView);
- Margin = new Padding(4, 3, 4, 3);
- Name = "FormComponents";
- Text = "Компоненты";
- ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
- ResumeLayout(false);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(464, 312);
+ this.Controls.Add(this.buttonRef);
+ this.Controls.Add(this.buttonDel);
+ this.Controls.Add(this.buttonUpd);
+ this.Controls.Add(this.buttonAdd);
+ this.Controls.Add(this.dataGridView);
+ this.Name = "FormComponents";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Компоненты";
+ this.Load += new System.EventHandler(this.FormComponents_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
+ this.ResumeLayout(false);
+
}
#endregion
- private DataGridView dataGridView;
- private Button buttonAdd;
- private Button buttonUpd;
- private Button buttonDel;
- private Button buttonRef;
+ private System.Windows.Forms.Button buttonRef;
+ private System.Windows.Forms.Button buttonDel;
+ private System.Windows.Forms.Button buttonUpd;
+ private System.Windows.Forms.Button buttonAdd;
+ private System.Windows.Forms.DataGridView dataGridView;
}
}
\ No newline at end of file
diff --git a/CarpentryWorkshop/CarpentryWorkshop/FormCreateOrder.Designer.cs b/CarpentryWorkshop/CarpentryWorkshop/FormCreateOrder.Designer.cs
new file mode 100644
index 0000000..3b9f590
--- /dev/null
+++ b/CarpentryWorkshop/CarpentryWorkshop/FormCreateOrder.Designer.cs
@@ -0,0 +1,146 @@
+namespace CarpentryWorkshopView
+{
+ partial class FormCreateOrder
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.labelCount = new System.Windows.Forms.Label();
+ this.comboBoxWood = new System.Windows.Forms.ComboBox();
+ this.buttonCancel = new System.Windows.Forms.Button();
+ this.buttonSave = new System.Windows.Forms.Button();
+ this.textBoxCount = new System.Windows.Forms.TextBox();
+ this.labelProduct = new System.Windows.Forms.Label();
+ this.labelSum = new System.Windows.Forms.Label();
+ this.textBoxSum = new System.Windows.Forms.TextBox();
+ this.SuspendLayout();
+ //
+ // labelCount
+ //
+ this.labelCount.AutoSize = true;
+ this.labelCount.Location = new System.Drawing.Point(12, 36);
+ this.labelCount.Name = "labelCount";
+ this.labelCount.Size = new System.Drawing.Size(69, 13);
+ this.labelCount.TabIndex = 2;
+ this.labelCount.Text = "Количество:";
+ //
+ // comboBoxWood
+ //
+ this.comboBoxWood.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.comboBoxWood.FormattingEnabled = true;
+ this.comboBoxWood.Location = new System.Drawing.Point(87, 6);
+ this.comboBoxWood.Name = "comboBoxWood";
+ this.comboBoxWood.Size = new System.Drawing.Size(217, 21);
+ this.comboBoxWood.TabIndex = 1;
+ this.comboBoxWood.SelectedIndexChanged += new System.EventHandler(this.comboBoxWood_SelectedIndexChanged);
+ //
+ // buttonCancel
+ //
+ this.buttonCancel.Location = new System.Drawing.Point(219, 85);
+ this.buttonCancel.Name = "buttonCancel";
+ this.buttonCancel.Size = new System.Drawing.Size(75, 23);
+ this.buttonCancel.TabIndex = 7;
+ this.buttonCancel.Text = "Отмена";
+ this.buttonCancel.UseVisualStyleBackColor = true;
+ this.buttonCancel.Click += new System.EventHandler(this.ButtonCancel_Click);
+ //
+ // buttonSave
+ //
+ this.buttonSave.Location = new System.Drawing.Point(138, 85);
+ this.buttonSave.Name = "buttonSave";
+ this.buttonSave.Size = new System.Drawing.Size(75, 23);
+ this.buttonSave.TabIndex = 6;
+ this.buttonSave.Text = "Сохранить";
+ this.buttonSave.UseVisualStyleBackColor = true;
+ this.buttonSave.Click += new System.EventHandler(this.ButtonSave_Click);
+ //
+ // textBoxCount
+ //
+ this.textBoxCount.Location = new System.Drawing.Point(87, 33);
+ this.textBoxCount.Name = "textBoxCount";
+ this.textBoxCount.Size = new System.Drawing.Size(217, 20);
+ this.textBoxCount.TabIndex = 3;
+ this.textBoxCount.TextChanged += new System.EventHandler(this.textBoxCount_TextChanged);
+ //
+ // labelProduct
+ //
+ this.labelProduct.AutoSize = true;
+ this.labelProduct.Location = new System.Drawing.Point(12, 9);
+ this.labelProduct.Name = "labelProduct";
+ this.labelProduct.Size = new System.Drawing.Size(54, 13);
+ this.labelProduct.TabIndex = 0;
+ this.labelProduct.Text = "Изделие:";
+ //
+ // labelSum
+ //
+ this.labelSum.AutoSize = true;
+ this.labelSum.Location = new System.Drawing.Point(12, 62);
+ this.labelSum.Name = "labelSum";
+ this.labelSum.Size = new System.Drawing.Size(44, 13);
+ this.labelSum.TabIndex = 4;
+ this.labelSum.Text = "Сумма:";
+ //
+ // textBoxSum
+ //
+ this.textBoxSum.Location = new System.Drawing.Point(87, 59);
+ this.textBoxSum.Name = "textBoxSum";
+ this.textBoxSum.ReadOnly = true;
+ this.textBoxSum.Size = new System.Drawing.Size(217, 20);
+ this.textBoxSum.TabIndex = 5;
+ //
+ // FormCreateOrder
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(318, 118);
+ this.Controls.Add(this.labelSum);
+ this.Controls.Add(this.textBoxSum);
+ this.Controls.Add(this.labelCount);
+ this.Controls.Add(this.comboBoxWood);
+ this.Controls.Add(this.buttonCancel);
+ this.Controls.Add(this.buttonSave);
+ this.Controls.Add(this.textBoxCount);
+ this.Controls.Add(this.labelProduct);
+ this.Name = "FormCreateOrder";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Заказ";
+ this.Load += new System.EventHandler(this.FormCreateOrder_Load);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private System.Windows.Forms.Label labelCount;
+ private System.Windows.Forms.ComboBox comboBoxWood;
+ private System.Windows.Forms.Button buttonCancel;
+ private System.Windows.Forms.Button buttonSave;
+ private System.Windows.Forms.TextBox textBoxCount;
+ private System.Windows.Forms.Label labelProduct;
+ private System.Windows.Forms.Label labelSum;
+ private System.Windows.Forms.TextBox textBoxSum;
+ }
+}
\ No newline at end of file
diff --git a/CarpentryWorkshop/CarpentryWorkshop/FormCreateOrder.cs b/CarpentryWorkshop/CarpentryWorkshop/FormCreateOrder.cs
new file mode 100644
index 0000000..7bd71e3
--- /dev/null
+++ b/CarpentryWorkshop/CarpentryWorkshop/FormCreateOrder.cs
@@ -0,0 +1,120 @@
+using CarpentryWorkshopContracts.BindingModels;
+using CarpentryWorkshopContracts.BusinessLogicsContracts;
+using CarpentryWorkshopContracts.SearchModels;
+using CarpentryWorkshopContracts.ViewModels;
+using Microsoft.Extensions.Logging;
+
+namespace CarpentryWorkshopView
+{
+ public partial class FormCreateOrder : Form
+ {
+ private readonly ILogger _logger;
+ private readonly IWoodLogic _logicW;
+ private readonly IOrderLogic _logicO;
+ public FormCreateOrder(ILogger logger, IWoodLogic logicP, IOrderLogic logicO)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _logicW = logicP;
+ _logicO = logicO;
+ }
+ private void FormCreateOrder_Load(object sender, EventArgs e)
+ {
+ _logger.LogInformation("Загрузка изделий для заказа");
+ //List list = _logicW.ReadList(null);
+ //if (list != null)
+ //{
+ // comboBoxWood.DisplayMember = "WoodName";
+ // comboBoxWood.ValueMember = "Id";
+ // comboBoxWood.DataSource = list;
+ // comboBoxWood.SelectedItem = null;
+ //}
+ try
+ {
+ var list = _logicW.ReadList(null);
+ if (list != null)
+ {
+ comboBoxWood.DisplayMember = "ManufactureName";
+ comboBoxWood.ValueMember = "Id";
+ comboBoxWood.DataSource = list;
+ comboBoxWood.SelectedItem = null;
+ }
+ _logger.LogInformation("Изделия загружены");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки изделий");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
+ MessageBoxIcon.Error);
+ }
+ }
+ private void CalcSum()
+ {
+ if (comboBoxWood.SelectedValue != null && !string.IsNullOrEmpty(textBoxCount.Text))
+ {
+ try
+ {
+ int id = Convert.ToInt32(comboBoxWood.SelectedValue);
+ var wood = _logicW.ReadElement(new WoodSearchModel { Id = id });
+ int count = Convert.ToInt32(textBoxCount.Text);
+ textBoxSum.Text = Math.Round(count * (wood?.Price ?? 0), 2).ToString();
+ _logger.LogInformation("Расчет суммы заказа");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка расчета суммы заказа");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ private void textBoxCount_TextChanged(object sender, EventArgs e)
+ {
+ CalcSum();
+ }
+ private void comboBoxWood_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ CalcSum();
+ }
+ private void ButtonSave_Click(object sender, EventArgs e)
+ {
+ if (string.IsNullOrEmpty(textBoxCount.Text))
+ {
+ MessageBox.Show("Заполните поле Количество", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (comboBoxWood.SelectedValue == null)
+ {
+ MessageBox.Show("Выберите изделие", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ _logger.LogInformation("Создание заказа");
+ try
+ {
+ var operationResult = _logicO.CreateOrder(new OrderBindingModel
+ {
+ WoodId = Convert.ToInt32(comboBoxWood.SelectedValue),
+ WoodName = comboBoxWood.Text,
+ Count = Convert.ToInt32(textBoxCount.Text),
+ Sum = Convert.ToDouble(textBoxSum.Text)
+ });
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при создании заказа. Дополнительная информация в логах.");
+ }
+ MessageBox.Show("Сохранение прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка создания заказа");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ private void ButtonCancel_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+ }
+}
diff --git a/CarpentryWorkshop/CarpentryWorkshop/FormCreateOrder.resx b/CarpentryWorkshop/CarpentryWorkshop/FormCreateOrder.resx
new file mode 100644
index 0000000..af32865
--- /dev/null
+++ b/CarpentryWorkshop/CarpentryWorkshop/FormCreateOrder.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CarpentryWorkshop/CarpentryWorkshop/FormMain.Designer.cs b/CarpentryWorkshop/CarpentryWorkshop/FormMain.Designer.cs
new file mode 100644
index 0000000..08dbbfe
--- /dev/null
+++ b/CarpentryWorkshop/CarpentryWorkshop/FormMain.Designer.cs
@@ -0,0 +1,178 @@
+namespace CarpentryWorkshopView
+{
+ partial class FormMain
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ menuStrip1 = new MenuStrip();
+ справочникиToolStripMenuItem = new ToolStripMenuItem();
+ КомпонентыToolStripMenuItem = new ToolStripMenuItem();
+ ИзделияToolStripMenuItem = new ToolStripMenuItem();
+ dataGridView = new DataGridView();
+ ButtonCreateOrder = new Button();
+ ButtonTakeOrderInWork = new Button();
+ ButtonOrderReady = new Button();
+ ButtonIssuedOrder = new Button();
+ ButtonRef = new Button();
+ menuStrip1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
+ SuspendLayout();
+ //
+ // menuStrip1
+ //
+ menuStrip1.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem });
+ menuStrip1.Location = new Point(0, 0);
+ menuStrip1.Name = "menuStrip1";
+ menuStrip1.Size = new Size(896, 24);
+ menuStrip1.TabIndex = 0;
+ menuStrip1.Text = "menuStrip1";
+ //
+ // справочникиToolStripMenuItem
+ //
+ справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { КомпонентыToolStripMenuItem, ИзделияToolStripMenuItem });
+ справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
+ справочникиToolStripMenuItem.Size = new Size(94, 20);
+ справочникиToolStripMenuItem.Text = "Справочники";
+ //
+ // КомпонентыToolStripMenuItem
+ //
+ КомпонентыToolStripMenuItem.Name = "КомпонентыToolStripMenuItem";
+ КомпонентыToolStripMenuItem.Size = new Size(180, 22);
+ КомпонентыToolStripMenuItem.Text = "Компоненты";
+ КомпонентыToolStripMenuItem.Click += КомпонентыToolStripMenuItem_Click;
+ //
+ // ИзделияToolStripMenuItem
+ //
+ ИзделияToolStripMenuItem.Name = "ИзделияToolStripMenuItem";
+ ИзделияToolStripMenuItem.Size = new Size(180, 22);
+ ИзделияToolStripMenuItem.Text = "Изделия";
+ ИзделияToolStripMenuItem.Click += ИзделияToolStripMenuItem_Click;
+ //
+ // dataGridView
+ //
+ dataGridView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
+ dataGridView.BackgroundColor = SystemColors.ButtonHighlight;
+ dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ dataGridView.EnableHeadersVisualStyles = false;
+ dataGridView.Location = new Point(1, 32);
+ dataGridView.MultiSelect = false;
+ dataGridView.Name = "dataGridView";
+ dataGridView.RowTemplate.Height = 25;
+ dataGridView.Size = new Size(755, 243);
+ dataGridView.TabIndex = 1;
+ //
+ // ButtonCreateOrder
+ //
+ ButtonCreateOrder.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ ButtonCreateOrder.Location = new Point(762, 44);
+ ButtonCreateOrder.Name = "ButtonCreateOrder";
+ ButtonCreateOrder.Size = new Size(122, 23);
+ ButtonCreateOrder.TabIndex = 2;
+ ButtonCreateOrder.Text = "Создать заказ";
+ ButtonCreateOrder.UseVisualStyleBackColor = true;
+ ButtonCreateOrder.Click += ButtonCreateOrder_Click;
+ //
+ // ButtonTakeOrderInWork
+ //
+ ButtonTakeOrderInWork.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ ButtonTakeOrderInWork.Location = new Point(762, 73);
+ ButtonTakeOrderInWork.Name = "ButtonTakeOrderInWork";
+ ButtonTakeOrderInWork.Size = new Size(122, 42);
+ ButtonTakeOrderInWork.TabIndex = 3;
+ ButtonTakeOrderInWork.Text = "Отдать на выполнение";
+ ButtonTakeOrderInWork.UseVisualStyleBackColor = true;
+ ButtonTakeOrderInWork.Click += ButtonTakeOrderInWork_Click;
+ //
+ // ButtonOrderReady
+ //
+ ButtonOrderReady.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ ButtonOrderReady.Location = new Point(762, 121);
+ ButtonOrderReady.Name = "ButtonOrderReady";
+ ButtonOrderReady.Size = new Size(122, 23);
+ ButtonOrderReady.TabIndex = 4;
+ ButtonOrderReady.Text = "Заказ готов";
+ ButtonOrderReady.UseVisualStyleBackColor = true;
+ ButtonOrderReady.Click += ButtonOrderReady_Click;
+ //
+ // ButtonIssuedOrder
+ //
+ ButtonIssuedOrder.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ ButtonIssuedOrder.Location = new Point(762, 150);
+ ButtonIssuedOrder.Name = "ButtonIssuedOrder";
+ ButtonIssuedOrder.Size = new Size(122, 23);
+ ButtonIssuedOrder.TabIndex = 5;
+ ButtonIssuedOrder.Text = "Заказ выдан";
+ ButtonIssuedOrder.UseVisualStyleBackColor = true;
+ ButtonIssuedOrder.Click += ButtonIssuedOrder_Click;
+ //
+ // ButtonRef
+ //
+ ButtonRef.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ ButtonRef.Location = new Point(762, 179);
+ ButtonRef.Name = "ButtonRef";
+ ButtonRef.Size = new Size(122, 23);
+ ButtonRef.TabIndex = 6;
+ ButtonRef.Text = "Обновить список";
+ ButtonRef.UseVisualStyleBackColor = true;
+ ButtonRef.Click += ButtonRef_Click;
+ //
+ // FormMain
+ //
+ AutoScaleDimensions = new SizeF(7F, 15F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(896, 280);
+ Controls.Add(ButtonRef);
+ Controls.Add(ButtonIssuedOrder);
+ Controls.Add(ButtonOrderReady);
+ Controls.Add(ButtonTakeOrderInWork);
+ Controls.Add(ButtonCreateOrder);
+ Controls.Add(dataGridView);
+ Controls.Add(menuStrip1);
+ MainMenuStrip = menuStrip1;
+ Name = "FormMain";
+ Text = "Сборка Набора";
+ Load += FormMain_Load;
+ menuStrip1.ResumeLayout(false);
+ menuStrip1.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
+ ResumeLayout(false);
+ PerformLayout();
+ }
+
+ #endregion
+ private MenuStrip menuStrip1;
+ private ToolStripMenuItem справочникиToolStripMenuItem;
+ private DataGridView dataGridView;
+ private Button ButtonCreateOrder;
+ private Button ButtonTakeOrderInWork;
+ private Button ButtonOrderReady;
+ private Button ButtonIssuedOrder;
+ private Button ButtonRef;
+ private ToolStripMenuItem КомпонентыToolStripMenuItem;
+ private ToolStripMenuItem ИзделияToolStripMenuItem;
+ }
+}
\ No newline at end of file
diff --git a/CarpentryWorkshop/CarpentryWorkshop/FormMain.cs b/CarpentryWorkshop/CarpentryWorkshop/FormMain.cs
new file mode 100644
index 0000000..ea377d9
--- /dev/null
+++ b/CarpentryWorkshop/CarpentryWorkshop/FormMain.cs
@@ -0,0 +1,149 @@
+using CarpentryWorkshop;
+using CarpentryWorkshopContracts.BindingModels;
+using CarpentryWorkshopContracts.BusinessLogicsContracts;
+using Microsoft.Extensions.Logging;
+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 CarpentryWorkshopView
+{
+ public partial class FormMain : Form
+ {
+ private readonly ILogger _logger;
+ private readonly IOrderLogic _orderLogic;
+ public FormMain(ILogger logger, IOrderLogic orderLogic)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _orderLogic = orderLogic;
+ }
+ private void FormMain_Load(object sender, EventArgs e)
+ {
+ LoadData();
+ }
+ private void LoadData()
+ {
+ _logger.LogInformation("Загрузка заказов");
+ // прописать логику
+ try
+ {
+ var list = _orderLogic.ReadList(null);
+ if (list != null)
+ {
+ dataGridView.DataSource = list;
+ dataGridView.Columns[1].Visible = false;
+
+ }
+ _logger.LogInformation("Загрузка продуктов");
+ }
+ catch (Exception ex)
+ {
+ _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(FormComponents));
+ if (service is FormComponents form)
+ {
+ form.ShowDialog();
+ }
+ }
+ private void ИзделияToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ // прописать логику
+ var service = Program.ServiceProvider?.GetService(typeof(FormWoods));
+ if (service is FormWoods form)
+ {
+ form.ShowDialog();
+ }
+ }
+ private void ButtonCreateOrder_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder));
+ if (service is FormCreateOrder form)
+ {
+ form.ShowDialog();
+ LoadData();
+ }
+ }
+ private void ButtonTakeOrderInWork_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ _logger.LogInformation("Заказ №{id}. Меняется статус на 'В работе'", id);
+ try
+ {
+ var operationResult = _orderLogic.TakeOrderInWork(new OrderBindingModel { Id = id });
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
+ }
+ LoadData();
+ }
+ 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)
+ {
+ int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ _logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'", id);
+ try
+ {
+ var operationResult = _orderLogic.FinishOrder(new OrderBindingModel { Id = id });
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
+ }
+ LoadData();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка отметки о готовности заказа"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ private void ButtonIssuedOrder_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ _logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'", id);
+ try
+ {
+ var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel { Id = id });
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
+ }
+ _logger.LogInformation("Заказ №{id} выдан", id);
+ LoadData();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка отметки о выдачи заказа");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ private void ButtonRef_Click(object sender, EventArgs e)
+ {
+ LoadData();
+ }
+ }
+}
diff --git a/CarpentryWorkshop/CarpentryWorkshop/FormMain.resx b/CarpentryWorkshop/CarpentryWorkshop/FormMain.resx
new file mode 100644
index 0000000..a0623c8
--- /dev/null
+++ b/CarpentryWorkshop/CarpentryWorkshop/FormMain.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/CarpentryWorkshop/CarpentryWorkshop/FormWood.cs b/CarpentryWorkshop/CarpentryWorkshop/FormWood.cs
index 4facb1c..c16da1e 100644
--- a/CarpentryWorkshop/CarpentryWorkshop/FormWood.cs
+++ b/CarpentryWorkshop/CarpentryWorkshop/FormWood.cs
@@ -4,15 +4,6 @@ using CarpentryWorkshopContracts.BusinessLogicsContracts;
using CarpentryWorkshopContracts.SearchModels;
using CarpentryWorkshopDataModels.Models;
using Microsoft.Extensions.Logging;
-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 CarpentryWorkshopView
{
diff --git a/CarpentryWorkshop/CarpentryWorkshop/FormWoods.Designer.cs b/CarpentryWorkshop/CarpentryWorkshop/FormWoods.Designer.cs
new file mode 100644
index 0000000..06e908f
--- /dev/null
+++ b/CarpentryWorkshop/CarpentryWorkshop/FormWoods.Designer.cs
@@ -0,0 +1,115 @@
+namespace CarpentryWorkshopView
+{
+ partial class FormWoods
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.dataGridView = new System.Windows.Forms.DataGridView();
+ this.ButtonAdd = new System.Windows.Forms.Button();
+ this.ButtonUpd = new System.Windows.Forms.Button();
+ this.ButtonDel = new System.Windows.Forms.Button();
+ this.ButtonRef = new System.Windows.Forms.Button();
+ ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
+ this.SuspendLayout();
+ //
+ // dataGridView
+ //
+ this.dataGridView.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight;
+ this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.dataGridView.Location = new System.Drawing.Point(0, 0);
+ this.dataGridView.Name = "dataGridView";
+ this.dataGridView.RowTemplate.Height = 25;
+ this.dataGridView.Size = new System.Drawing.Size(509, 448);
+ this.dataGridView.TabIndex = 0;
+ //
+ // ButtonAdd
+ //
+ this.ButtonAdd.Location = new System.Drawing.Point(526, 12);
+ this.ButtonAdd.Name = "ButtonAdd";
+ this.ButtonAdd.Size = new System.Drawing.Size(127, 23);
+ this.ButtonAdd.TabIndex = 1;
+ this.ButtonAdd.Text = "Добавить";
+ this.ButtonAdd.UseVisualStyleBackColor = true;
+ this.ButtonAdd.Click += new System.EventHandler(this.ButtonAdd_Click);
+ //
+ // ButtonUpd
+ //
+ this.ButtonUpd.Location = new System.Drawing.Point(526, 41);
+ this.ButtonUpd.Name = "ButtonUpd";
+ this.ButtonUpd.Size = new System.Drawing.Size(127, 23);
+ this.ButtonUpd.TabIndex = 2;
+ this.ButtonUpd.Text = "Изменить";
+ this.ButtonUpd.UseVisualStyleBackColor = true;
+ this.ButtonUpd.Click += new System.EventHandler(this.ButtonUpd_Click);
+ //
+ // ButtonDel
+ //
+ this.ButtonDel.Location = new System.Drawing.Point(526, 70);
+ this.ButtonDel.Name = "ButtonDel";
+ this.ButtonDel.Size = new System.Drawing.Size(127, 23);
+ this.ButtonDel.TabIndex = 3;
+ this.ButtonDel.Text = "Удалить";
+ this.ButtonDel.UseVisualStyleBackColor = true;
+ this.ButtonDel.Click += new System.EventHandler(this.ButtonDel_Click);
+ //
+ // ButtonRef
+ //
+ this.ButtonRef.Location = new System.Drawing.Point(526, 99);
+ this.ButtonRef.Name = "ButtonRef";
+ this.ButtonRef.Size = new System.Drawing.Size(127, 23);
+ this.ButtonRef.TabIndex = 4;
+ this.ButtonRef.Text = "Обновить";
+ this.ButtonRef.UseVisualStyleBackColor = true;
+ this.ButtonRef.Click += new System.EventHandler(this.ButtonRef_Click);
+ //
+ // FormWoods
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(668, 450);
+ this.Controls.Add(this.ButtonRef);
+ this.Controls.Add(this.ButtonDel);
+ this.Controls.Add(this.ButtonUpd);
+ this.Controls.Add(this.ButtonAdd);
+ this.Controls.Add(this.dataGridView);
+ this.Name = "FormWoods";
+ this.Text = "Набор";
+ this.Load += new System.EventHandler(this.FormWoods_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.DataGridView dataGridView;
+ private System.Windows.Forms.Button ButtonAdd;
+ private System.Windows.Forms.Button ButtonUpd;
+ private System.Windows.Forms.Button ButtonDel;
+ private System.Windows.Forms.Button ButtonRef;
+ }
+}
\ No newline at end of file
diff --git a/CarpentryWorkshop/CarpentryWorkshop/FormWoods.cs b/CarpentryWorkshop/CarpentryWorkshop/FormWoods.cs
new file mode 100644
index 0000000..94ffbb0
--- /dev/null
+++ b/CarpentryWorkshop/CarpentryWorkshop/FormWoods.cs
@@ -0,0 +1,98 @@
+using CarpentryWorkshop;
+using CarpentryWorkshopContracts.BindingModels;
+using CarpentryWorkshopContracts.BusinessLogicsContracts;
+using Microsoft.Extensions.Logging;
+
+namespace CarpentryWorkshopView
+{
+ public partial class FormWoods : Form
+ {
+ private readonly ILogger _logger;
+ private readonly IWoodLogic _logic;
+ public FormWoods(ILogger logger, IWoodLogic logic)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _logic = logic;
+ }
+ private void FormWoods_Load(object sender, EventArgs e)
+ {
+ LoadData();
+ }
+ private void LoadData()
+ {
+ try
+ {
+ var list = _logic.ReadList(null);
+ if (list != null)
+ {
+ dataGridView.DataSource = list;
+ dataGridView.Columns["Id"].Visible = false;
+ dataGridView.Columns["WoodName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
+ dataGridView.Columns[3].Visible = false;
+
+ }
+ _logger.LogInformation("Загрузка продуктов");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки продуктов");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ private void ButtonAdd_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormWood));
+ if (service is FormWood form)
+ {
+ if (form.ShowDialog() == DialogResult.OK)
+ {
+ LoadData();
+ }
+ }
+ }
+ private void ButtonUpd_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormWood));
+ if (service is FormWood form)
+ {
+ form.Id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ if (form.ShowDialog() == DialogResult.OK)
+ {
+ LoadData();
+ }
+ }
+ }
+ }
+ private void ButtonDel_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ if (MessageBox.Show("Удалить запись?", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
+ {
+ int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ _logger.LogInformation("Удаление продукта");
+ try
+ {
+ if (!_logic.Delete(new WoodBindingModel { Id = id }))
+ {
+ throw new Exception("Ошибка при удалении. Дополнительная информация в логах.");
+ }
+ LoadData();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка удаления продукта");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ }
+ private void ButtonRef_Click(object sender, EventArgs e)
+ {
+ LoadData();
+ }
+ }
+}
diff --git a/CarpentryWorkshop/CarpentryWorkshop/FormWoods.resx b/CarpentryWorkshop/CarpentryWorkshop/FormWoods.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/CarpentryWorkshop/CarpentryWorkshop/FormWoods.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CarpentryWorkshop/CarpentryWorkshop/Program.cs b/CarpentryWorkshop/CarpentryWorkshop/Program.cs
index 837f262..a1741f7 100644
--- a/CarpentryWorkshop/CarpentryWorkshop/Program.cs
+++ b/CarpentryWorkshop/CarpentryWorkshop/Program.cs
@@ -2,6 +2,7 @@ using CarpentryWorkshopBusinessLogic.BusinessLogics;
using CarpentryWorkshopContracts.BusinessLogicsContracts;
using CarpentryWorkshopContracts.StoragesContracts;
using CarpentryWorkshopListImplement.Implements;
+using CarpentryWorkshopView;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;
@@ -19,11 +20,13 @@ namespace CarpentryWorkshop
[STAThread]
static void Main()
{
-
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
- // Application.Run(new Form1());
+ var services = new ServiceCollection();
+ ConfigureServices(services);
+ _serviceProvider = services.BuildServiceProvider();
+ Application.Run(_serviceProvider.GetRequiredService());
}
private static void ConfigureServices(ServiceCollection services)