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