From f41966f4d4e1f6167ba6a36fc398ab32f643699f Mon Sep 17 00:00:00 2001 From: Ivan_Starostin Date: Sun, 2 Jun 2024 16:43:14 +0400 Subject: [PATCH] Upload files to 'ShipyardView' --- .../FormReportShipComponents.Designer.cs | 101 ++++++++++++++ ShipyardView/FormReportShipComponents.cs | 84 ++++++++++++ ShipyardView/FormReportShipComponents.resx | 129 ++++++++++++++++++ 3 files changed, 314 insertions(+) create mode 100644 ShipyardView/FormReportShipComponents.Designer.cs create mode 100644 ShipyardView/FormReportShipComponents.cs create mode 100644 ShipyardView/FormReportShipComponents.resx diff --git a/ShipyardView/FormReportShipComponents.Designer.cs b/ShipyardView/FormReportShipComponents.Designer.cs new file mode 100644 index 0000000..d6cd552 --- /dev/null +++ b/ShipyardView/FormReportShipComponents.Designer.cs @@ -0,0 +1,101 @@ +namespace ShipyardView +{ + partial class FormReportShipComponents + { + /// + /// 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() + { + dataGridView = new DataGridView(); + ComponentColumn = new DataGridViewTextBoxColumn(); + ShipColumn = new DataGridViewTextBoxColumn(); + CountColumn = new DataGridViewTextBoxColumn(); + buttonSave = new Button(); + ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit(); + SuspendLayout(); + // + // dataGridView + // + dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridView.Columns.AddRange(new DataGridViewColumn[] { ComponentColumn, ShipColumn, CountColumn }); + dataGridView.Location = new Point(12, 93); + dataGridView.Name = "dataGridView"; + dataGridView.RowHeadersWidth = 51; + dataGridView.RowTemplate.Height = 29; + dataGridView.Size = new Size(908, 343); + dataGridView.TabIndex = 0; + // + // ComponentColumn + // + ComponentColumn.HeaderText = "компонент"; + ComponentColumn.MinimumWidth = 6; + ComponentColumn.Name = "ComponentColumn"; + // + // ShipColumn + // + ShipColumn.HeaderText = "корабль"; + ShipColumn.MinimumWidth = 6; + ShipColumn.Name = "ShipColumn"; + // + // CountColumn + // + CountColumn.HeaderText = "количество"; + CountColumn.MinimumWidth = 6; + CountColumn.Name = "CountColumn"; + // + // buttonSave + // + buttonSave.Location = new Point(352, 12); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(189, 46); + buttonSave.TabIndex = 1; + buttonSave.Text = "сохранить в excel"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += SaveButton_Click; + // + // FormReportShipComponents + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(932, 464); + Controls.Add(buttonSave); + Controls.Add(dataGridView); + Name = "FormReportShipComponents"; + Text = "FormReportShipComponents"; + Load += FormReportShipComponents_Load; + ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit(); + ResumeLayout(false); + } + + #endregion + + private DataGridView dataGridView; + private Button buttonSave; + private DataGridViewTextBoxColumn ComponentColumn; + private DataGridViewTextBoxColumn ShipColumn; + private DataGridViewTextBoxColumn CountColumn; + } +} \ No newline at end of file diff --git a/ShipyardView/FormReportShipComponents.cs b/ShipyardView/FormReportShipComponents.cs new file mode 100644 index 0000000..5c4f7d1 --- /dev/null +++ b/ShipyardView/FormReportShipComponents.cs @@ -0,0 +1,84 @@ +using Microsoft.Extensions.Logging; +using ShipyardContracts.BindingModels; +using ShipyardContracts.BusinessLogicContracts; +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 ShipyardView +{ + public partial class FormReportShipComponents : Form + { + private readonly ILogger _logger; + private readonly IReportLogic _logic; + public FormReportShipComponents( + ILogger logger, IReportLogic logic) + { + InitializeComponent(); + _logger = logger; + _logic = logic; + + } + + private void SaveButton_Click(object sender, EventArgs e) + { + using var dialog = new SaveFileDialog + { + Filter = "xlsx|*.xlsx" + }; + if (dialog.ShowDialog() == DialogResult.OK) + { + try + { + _logic.SaveShipComponentToExcelFile( + new ReportBindingModel + { + FileName = dialog.FileName + }); + _logger.LogInformation("Сохранение списка компьютеров по компонентам"); + MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка сохранения списка компьютеров по компонентам"); + MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private void FormReportShipComponents_Load(object sender, EventArgs e) + { + try + { + var dict = _logic.GetShipComponent(); + if (dict != null) + { + dataGridView.Rows.Clear(); + foreach (var elem in dict) + { + dataGridView.Rows.Add(new object[] { elem.ShipName, "", "" }); + foreach (var listElem in elem.Components) + { + dataGridView.Rows.Add(new object[] { "", listElem.Item1, listElem.Item2 }); + } + dataGridView.Rows.Add(new object[] { "Итого", "", elem.TotalCount }); + dataGridView.Rows.Add(Array.Empty()); + } + } + _logger.LogInformation("Загрузка списка кораблей по компонентам"); + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка загрузки списка компьютеров по компонентам"); + MessageBox.Show( + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/ShipyardView/FormReportShipComponents.resx b/ShipyardView/FormReportShipComponents.resx new file mode 100644 index 0000000..de3c3a4 --- /dev/null +++ b/ShipyardView/FormReportShipComponents.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + True + + + True + + + True + + \ No newline at end of file