Upload files to 'ShipyardView'

This commit is contained in:
Ivan_Starostin 2024-06-02 17:22:30 +04:00
parent b1ee7c922e
commit 1865aa693a
2 changed files with 304 additions and 259 deletions

View File

@ -1,143 +1,166 @@
namespace ShipyardView
{
partial class FormCreateOrder
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
partial class FormCreateOrder
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
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
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
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();
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
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;
}
}

View File

@ -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<FormCreateOrder> 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<FormCreateOrder> 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();
}
}
}