diff --git a/ShipyardView/FormCreateOrder.Designer.cs b/ShipyardView/FormCreateOrder.Designer.cs
index 209cfff..268b576 100644
--- a/ShipyardView/FormCreateOrder.Designer.cs
+++ b/ShipyardView/FormCreateOrder.Designer.cs
@@ -1,143 +1,166 @@
namespace ShipyardView
{
- partial class FormCreateOrder
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
+ 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);
- }
+ ///
+ /// 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
+ #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()
- {
- textBoxCount = new TextBox();
- textBoxSum = new TextBox();
- ComboBoxManufacture = new ComboBox();
- ButtonCancel = new Button();
- ButtonSave = new Button();
- labelItem = new Label();
- labelcount = new Label();
- labeltotal = new Label();
- SuspendLayout();
- //
- // textBoxCount
- //
- textBoxCount.Location = new Point(455, 56);
- textBoxCount.Name = "textBoxCount";
- textBoxCount.Size = new Size(125, 27);
- textBoxCount.TabIndex = 1;
- textBoxCount.TextChanged += textBoxCount_TextChanged;
- //
- // textBoxSum
- //
- textBoxSum.Location = new Point(377, 109);
- textBoxSum.Name = "textBoxSum";
- textBoxSum.ReadOnly = true;
- textBoxSum.Size = new Size(125, 27);
- textBoxSum.TabIndex = 2;
- //
- // ComboBoxManufacture
- //
- ComboBoxManufacture.FormattingEnabled = true;
- ComboBoxManufacture.Location = new Point(271, 55);
- ComboBoxManufacture.Name = "ComboBoxManufacture";
- ComboBoxManufacture.Size = new Size(151, 28);
- ComboBoxManufacture.TabIndex = 3;
- ComboBoxManufacture.SelectedIndexChanged += ComboBoxManufacture_SelectedIndexChanged;
- //
- // ButtonCancel
- //
- ButtonCancel.Location = new Point(440, 168);
- ButtonCancel.Name = "ButtonCancel";
- ButtonCancel.Size = new Size(94, 29);
- ButtonCancel.TabIndex = 4;
- ButtonCancel.Text = "отмена";
- ButtonCancel.UseVisualStyleBackColor = true;
- ButtonCancel.Click += ButtonCancel_Click;
- //
- // ButtonSave
- //
- ButtonSave.Location = new Point(307, 168);
- ButtonSave.Name = "ButtonSave";
- ButtonSave.Size = new Size(94, 29);
- ButtonSave.TabIndex = 5;
- ButtonSave.Text = "сохранить";
- ButtonSave.UseVisualStyleBackColor = true;
- ButtonSave.Click += ButtonSave_Click;
- //
- // labelItem
- //
- labelItem.AutoSize = true;
- labelItem.Location = new Point(271, 22);
- labelItem.Name = "labelItem";
- labelItem.Size = new Size(67, 20);
- labelItem.TabIndex = 6;
- labelItem.Text = "корабль";
- //
- // labelcount
- //
- labelcount.AutoSize = true;
- labelcount.Location = new Point(455, 22);
- labelcount.Name = "labelcount";
- labelcount.Size = new Size(88, 20);
- labelcount.TabIndex = 7;
- labelcount.Text = "количество";
- //
- // labeltotal
- //
- labeltotal.AutoSize = true;
- labeltotal.Location = new Point(307, 112);
- labeltotal.Name = "labeltotal";
- labeltotal.Size = new Size(51, 20);
- labeltotal.TabIndex = 8;
- labeltotal.Text = "итого:";
- //
- // FormCreateOrder
- //
- AutoScaleDimensions = new SizeF(8F, 20F);
- AutoScaleMode = AutoScaleMode.Font;
- ClientSize = new Size(800, 209);
- Controls.Add(labeltotal);
- Controls.Add(labelcount);
- Controls.Add(labelItem);
- Controls.Add(ButtonSave);
- Controls.Add(ButtonCancel);
- Controls.Add(ComboBoxManufacture);
- Controls.Add(textBoxSum);
- Controls.Add(textBoxCount);
- Name = "FormCreateOrder";
- Text = "FormCreateOrder";
- Load += FormCreateOrder_Load;
- ResumeLayout(false);
- PerformLayout();
- }
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ textBoxCount = new TextBox();
+ textBoxSum = new TextBox();
+ ComboBoxManufacture = new ComboBox();
+ ButtonCancel = new Button();
+ ButtonSave = new Button();
+ labelItem = new Label();
+ labelcount = new Label();
+ labeltotal = new Label();
+ ComboBoxClient = new ComboBox();
+ labelClient = new Label();
+ SuspendLayout();
+ //
+ // textBoxCount
+ //
+ textBoxCount.Location = new Point(343, 62);
+ textBoxCount.Name = "textBoxCount";
+ textBoxCount.Size = new Size(125, 27);
+ textBoxCount.TabIndex = 1;
+ textBoxCount.TextChanged += textBoxCount_TextChanged;
+ //
+ // textBoxSum
+ //
+ textBoxSum.Location = new Point(377, 109);
+ textBoxSum.Name = "textBoxSum";
+ textBoxSum.ReadOnly = true;
+ textBoxSum.Size = new Size(125, 27);
+ textBoxSum.TabIndex = 2;
+ //
+ // ComboBoxManufacture
+ //
+ ComboBoxManufacture.FormattingEnabled = true;
+ ComboBoxManufacture.Location = new Point(129, 55);
+ ComboBoxManufacture.Name = "ComboBoxManufacture";
+ ComboBoxManufacture.Size = new Size(151, 28);
+ ComboBoxManufacture.TabIndex = 3;
+ ComboBoxManufacture.SelectedIndexChanged += ComboBoxManufacture_SelectedIndexChanged;
+ //
+ // ButtonCancel
+ //
+ ButtonCancel.Location = new Point(440, 168);
+ ButtonCancel.Name = "ButtonCancel";
+ ButtonCancel.Size = new Size(94, 29);
+ ButtonCancel.TabIndex = 4;
+ ButtonCancel.Text = "отмена";
+ ButtonCancel.UseVisualStyleBackColor = true;
+ ButtonCancel.Click += ButtonCancel_Click;
+ //
+ // ButtonSave
+ //
+ ButtonSave.Location = new Point(307, 168);
+ ButtonSave.Name = "ButtonSave";
+ ButtonSave.Size = new Size(94, 29);
+ ButtonSave.TabIndex = 5;
+ ButtonSave.Text = "сохранить";
+ ButtonSave.UseVisualStyleBackColor = true;
+ ButtonSave.Click += ButtonSave_Click;
+ //
+ // labelItem
+ //
+ labelItem.AutoSize = true;
+ labelItem.Location = new Point(165, 22);
+ labelItem.Name = "labelItem";
+ labelItem.Size = new Size(67, 20);
+ labelItem.TabIndex = 6;
+ labelItem.Text = "корабль";
+ //
+ // labelcount
+ //
+ labelcount.AutoSize = true;
+ labelcount.Location = new Point(360, 22);
+ labelcount.Name = "labelcount";
+ labelcount.Size = new Size(88, 20);
+ labelcount.TabIndex = 7;
+ labelcount.Text = "количество";
+ //
+ // labeltotal
+ //
+ labeltotal.AutoSize = true;
+ labeltotal.Location = new Point(307, 112);
+ labeltotal.Name = "labeltotal";
+ labeltotal.Size = new Size(51, 20);
+ labeltotal.TabIndex = 8;
+ labeltotal.Text = "итого:";
+ //
+ // ComboBoxClient
+ //
+ ComboBoxClient.FormattingEnabled = true;
+ ComboBoxClient.Location = new Point(511, 62);
+ ComboBoxClient.Name = "ComboBoxClient";
+ ComboBoxClient.Size = new Size(151, 28);
+ ComboBoxClient.TabIndex = 9;
+ //
+ // labelClient
+ //
+ labelClient.AutoSize = true;
+ labelClient.Location = new Point(537, 19);
+ labelClient.Name = "labelClient";
+ labelClient.Size = new Size(56, 20);
+ labelClient.TabIndex = 10;
+ labelClient.Text = "клиент";
+ //
+ // FormCreateOrder
+ //
+ AutoScaleDimensions = new SizeF(8F, 20F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(800, 209);
+ Controls.Add(labelClient);
+ Controls.Add(ComboBoxClient);
+ Controls.Add(labeltotal);
+ Controls.Add(labelcount);
+ Controls.Add(labelItem);
+ Controls.Add(ButtonSave);
+ Controls.Add(ButtonCancel);
+ Controls.Add(ComboBoxManufacture);
+ Controls.Add(textBoxSum);
+ Controls.Add(textBoxCount);
+ Name = "FormCreateOrder";
+ Text = "FormCreateOrder";
+ Load += FormCreateOrder_Load;
+ ResumeLayout(false);
+ PerformLayout();
+ }
- #endregion
- private TextBox textBoxCount;
- private TextBox textBoxSum;
- private ComboBox ComboBoxManufacture;
- private Button ButtonCancel;
- private Button ButtonSave;
- private Label labelItem;
- private Label labelcount;
- private Label labeltotal;
- }
+ #endregion
+ private TextBox textBoxCount;
+ private TextBox textBoxSum;
+ private ComboBox ComboBoxManufacture;
+ private Button ButtonCancel;
+ private Button ButtonSave;
+ private Label labelItem;
+ private Label labelcount;
+ private Label labeltotal;
+ private ComboBox ComboBoxClient;
+ private Label labelClient;
+ }
}
\ No newline at end of file
diff --git a/ShipyardView/FormCreateOrder.cs b/ShipyardView/FormCreateOrder.cs
index 00eb20d..149e40e 100644
--- a/ShipyardView/FormCreateOrder.cs
+++ b/ShipyardView/FormCreateOrder.cs
@@ -1,133 +1,155 @@
using Microsoft.Extensions.Logging;
using ShipyardContracts.BindingModels;
+using ShipyardContracts.BusinessLogicContracts;
using ShipyardContracts.BusinessLogicsContracts;
using ShipyardContracts.SearchModels;
namespace ShipyardView
{
- public partial class FormCreateOrder : Form
- {
- private readonly ILogger _logger;
- private readonly IShipLogic _logicP;
- private readonly IOrderLogic _logicO;
- public FormCreateOrder(ILogger logger, IShipLogic
- logicP, IOrderLogic logicO)
- {
- InitializeComponent();
- _logger = logger;
- _logicP = logicP;
- _logicO = logicO;
- }
- private void FormCreateOrder_Load(object sender, EventArgs e)
- {
- _logger.LogInformation("Загрузка кораблей для заказа");
- try
- {
- var list = _logicP.ReadList(null);
- if (list != null)
- {
- ComboBoxManufacture.DisplayMember = "ShipName";
- ComboBoxManufacture.ValueMember = "Id";
- ComboBoxManufacture.DataSource = list;
- ComboBoxManufacture.SelectedItem = null;
- }
- _logger.LogInformation("корабли загружены");
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка загрузки кораблей");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
- MessageBoxIcon.Error);
- }
- }
- private void CalcSum()
- {
- if (ComboBoxManufacture.SelectedValue != null &&
- !string.IsNullOrEmpty(textBoxCount.Text))
- {
- try
- {
- int id = Convert.ToInt32(ComboBoxManufacture.SelectedValue);
- var product = _logicP.ReadElement(new ShipSearchModel
- {
- Id
- = id
- });
- int count = Convert.ToInt32(textBoxCount.Text);
- textBoxSum.Text = Math.Round(count * (product?.Price ?? 0),
- 2).ToString();
- _logger.LogInformation("Расчет суммы заказа");
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка расчета суммы заказа");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
- MessageBoxIcon.Error);
- }
- }
- }
- private void ComboBoxProduct_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 (ComboBoxManufacture.SelectedValue == null)
- {
- MessageBox.Show("Выберите корабль", "Ошибка",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- _logger.LogInformation("Создание заказа");
- try
- {
- var operationResult = _logicO.CreateOrder(new OrderBindingModel
- {
- ShipId = Convert.ToInt32(ComboBoxManufacture.SelectedValue),
- 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();
- }
- private void textBoxCount_TextChanged(object sender, EventArgs e)
- {
- CalcSum();
- }
+ public partial class FormCreateOrder : Form
+ {
+ private readonly ILogger _logger;
+ private readonly IShipLogic _logicP;
+ private readonly IOrderLogic _logicO;
+ private readonly IClientLogic _logicC;
+ public FormCreateOrder(ILogger logger, IShipLogic
+ logicP, IOrderLogic logicO, IClientLogic logicC)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _logicP = logicP;
+ _logicO = logicO;
+ _logicC = logicC;
+ }
+ private void FormCreateOrder_Load(object sender, EventArgs e)
+ {
+ _logger.LogInformation("Загрузка кораблей для заказа");
+ try
+ {
+ var list = _logicP.ReadList(null);
+ if (list != null)
+ {
+ ComboBoxManufacture.DisplayMember = "ShipName";
+ ComboBoxManufacture.ValueMember = "Id";
+ ComboBoxManufacture.DataSource = list;
+ ComboBoxManufacture.SelectedItem = null;
+ }
+ _logger.LogInformation("корабли загружены");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки кораблей");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
+ MessageBoxIcon.Error);
+ }
+ _logger.LogInformation("Загрузка клиентов для заказа");
+ try
+ {
+ var list = _logicC.ReadList(null);
+ if (list != null)
+ {
+ ComboBoxClient.DisplayMember = "ClientFIO";
+ ComboBoxClient.ValueMember = "Id";
+ ComboBoxClient.DataSource = list;
+ ComboBoxClient.SelectedItem = null;
+ }
+ _logger.LogInformation("Клиенты загружены");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки клиентов");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ private void CalcSum()
+ {
+ if (ComboBoxManufacture.SelectedValue != null &&
+ !string.IsNullOrEmpty(textBoxCount.Text))
+ {
+ try
+ {
+ int id = Convert.ToInt32(ComboBoxManufacture.SelectedValue);
+ var product = _logicP.ReadElement(new ShipSearchModel
+ {
+ Id
+ = id
+ });
+ int count = Convert.ToInt32(textBoxCount.Text);
+ textBoxSum.Text = Math.Round(count * (product?.Price ?? 0),
+ 2).ToString();
+ _logger.LogInformation("Расчет суммы заказа");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка расчета суммы заказа");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
+ MessageBoxIcon.Error);
+ }
+ }
+ }
+ private void ComboBoxProduct_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 (ComboBoxManufacture.SelectedValue == null)
+ {
+ MessageBox.Show("Выберите корабль", "Ошибка",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ _logger.LogInformation("Создание заказа");
+ try
+ {
+ var operationResult = _logicO.CreateOrder(new OrderBindingModel
+ {
+ ShipId = Convert.ToInt32(ComboBoxManufacture.SelectedValue),
+ ClientId = Convert.ToInt32(ComboBoxClient.SelectedValue),
+ 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();
+ }
+ private void textBoxCount_TextChanged(object sender, EventArgs e)
+ {
+ CalcSum();
+ }
- private void ComboBoxManufacture_SelectedIndexChanged(object sender, EventArgs e)
- {
- CalcSum();
- }
+ private void ComboBoxManufacture_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ CalcSum();
+ }
- private void textBoxSum_TextChanged(object sender, EventArgs e)
- {
- CalcSum();
- }
- }
+ private void textBoxSum_TextChanged(object sender, EventArgs e)
+ {
+ CalcSum();
+ }
+ }
}
\ No newline at end of file