From dcd9929b9ca696d7030de31376013df93181c3ce Mon Sep 17 00:00:00 2001 From: "annalyovushkina@yandex.ru" Date: Wed, 23 Oct 2024 01:26:00 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B8=D1=87=D0=B5=D1=80=D1=82=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WinFormUchetLab/FormChecker.Designer.cs | 54 ++++++- .../WinFormUchetLab/FormChecker.cs | 135 ++++++++++++++++- .../WinFormUchetLab/FormChecker.resx | 60 ++++---- .../WinFormUchetLab/FormLab.Designer.cs | 136 +++++++++++++++++- WinFormUchetLab/WinFormUchetLab/FormLab.cs | 121 +++++++++++++++- WinFormUchetLab/WinFormUchetLab/FormLab.resx | 54 +++---- ...Form1.Designer.cs => FormMain.Designer.cs} | 51 +++---- .../WinFormUchetLab/{Form1.cs => FormMain.cs} | 68 +++++++-- .../{Form1.resx => FormMain.resx} | 3 + WinFormUchetLab/WinFormUchetLab/Program.cs | 4 +- .../WinFormUchetLab/SingletonDatabase.cs | 35 +++++ 11 files changed, 616 insertions(+), 105 deletions(-) rename WinFormUchetLab/WinFormUchetLab/{Form1.Designer.cs => FormMain.Designer.cs} (74%) rename WinFormUchetLab/WinFormUchetLab/{Form1.cs => FormMain.cs} (79%) rename WinFormUchetLab/WinFormUchetLab/{Form1.resx => FormMain.resx} (96%) create mode 100644 WinFormUchetLab/WinFormUchetLab/SingletonDatabase.cs diff --git a/WinFormUchetLab/WinFormUchetLab/FormChecker.Designer.cs b/WinFormUchetLab/WinFormUchetLab/FormChecker.Designer.cs index bc4f632..2eee771 100644 --- a/WinFormUchetLab/WinFormUchetLab/FormChecker.Designer.cs +++ b/WinFormUchetLab/WinFormUchetLab/FormChecker.Designer.cs @@ -28,12 +28,58 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "FormChecker"; + dataGridView1 = new DataGridView(); + Id = new DataGridViewTextBoxColumn(); + FIO = new DataGridViewTextBoxColumn(); + ((System.ComponentModel.ISupportInitialize)dataGridView1).BeginInit(); + SuspendLayout(); + // + // dataGridView1 + // + dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; + dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridView1.Columns.AddRange(new DataGridViewColumn[] { Id, FIO }); + dataGridView1.Location = new Point(0, 0); + dataGridView1.Name = "dataGridView1"; + dataGridView1.RowHeadersWidth = 51; + dataGridView1.RowTemplate.Height = 29; + dataGridView1.Size = new Size(525, 403); + dataGridView1.TabIndex = 0; + dataGridView1.CellEndEdit += dataGridView1_CellEndEdit; + dataGridView1.CellValidating += dataGridView1_CellValidating; + dataGridView1.KeyDown += dataGridView1_KeyDown; + // + // Id + // + Id.HeaderText = "Id"; + Id.MinimumWidth = 6; + Id.Name = "Id"; + Id.Visible = false; + // + // FIO + // + FIO.HeaderText = "Проверяющий"; + FIO.MinimumWidth = 6; + FIO.Name = "FIO"; + // + // FormChecker + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(524, 401); + Controls.Add(dataGridView1); + Name = "FormChecker"; + Text = "FormChecker"; + Load += FormChecker_Load; + ((System.ComponentModel.ISupportInitialize)dataGridView1).EndInit(); + ResumeLayout(false); } #endregion + + private DataGridView dataGridView1; + private DataGridViewTextBoxColumn Id; + private DataGridViewTextBoxColumn FIO; } } \ No newline at end of file diff --git a/WinFormUchetLab/WinFormUchetLab/FormChecker.cs b/WinFormUchetLab/WinFormUchetLab/FormChecker.cs index 8d59e90..0a1b8e5 100644 --- a/WinFormUchetLab/WinFormUchetLab/FormChecker.cs +++ b/WinFormUchetLab/WinFormUchetLab/FormChecker.cs @@ -7,14 +7,147 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using UchetLabBusinessLogic.BusinessLogic; +using UchetLabContracts.BindingModels; +using UchetLabContracts.BusinessLogicsContracts; +using UchetLabContracts.SearchModels; namespace WinFormUchetLab { public partial class FormChecker : Form { - public FormChecker() + private readonly ICheckerLogic _checkerLogic; + public FormChecker(ICheckerLogic checkerLogic) { + _checkerLogic = new CheckerLogic(SingletonDatabase.CheckerStorage); InitializeComponent(); } + + private void FormChecker_Load(object sender, EventArgs e) + { + LoadData(); + } + private void LoadData() + { + try + { + var checkers = _checkerLogic.ReadList(new CheckerSearchModel()); + if (checkers == null) + { + MessageBox.Show("не удалось загрузить данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + dataGridView1.Rows.Clear(); + foreach (var difficulty in checkers) + { + dataGridView1.Rows.Add(); + dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Id"].Value = difficulty.Id; + dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Проверяющий"].Value = difficulty.FIO; + } + } + catch (Exception ex) + { + MessageBox.Show($"Ошибка при загрузке данных: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) + { + try + { + // Получаем текущую строку + DataGridViewRow currentRow = dataGridView1.Rows[e.RowIndex]; + + // Проверяем, есть ли у строки ID (если его нет, считаем запись новой) + if (currentRow.Cells["Id"].Value == null || Convert.ToInt32(currentRow.Cells["Id"].Value) == 0) + { + // Создание новой записи + _checkerLogic.Create(new CheckerBindingModel() + { + FIO = currentRow.Cells["FIO"].Value.ToString() // Достаём текст из строки + }); + } + else + { + // Обновление существующей записи + _checkerLogic.Update(new CheckerBindingModel() + { + Id = Convert.ToInt32(currentRow.Cells["Id"].Value), // Достаём Id для обновления + FIO = currentRow.Cells["FIO"].Value.ToString() // Достаём текст из строки + }); + } + // Сообщаем пользователю об успешном сохранении + MessageBox.Show("Запись успешно сохранена", "Сохранение", MessageBoxButtons.OK, MessageBoxIcon.Information); + + // Отложенный вызов функции загрузки данных + this.BeginInvoke(new MethodInvoker(LoadData)); + } + catch (Exception ex) + { + // Выводим сообщение об ошибке + MessageBox.Show($"Ошибка при сохранении записи: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void dataGridView1_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Insert) + { + // Добавляем новую строку + dataGridView1.Rows.Add(); + dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Проверяющий"]; // Ставим фокус на новую строку + e.Handled = true; + } + else if (e.KeyCode == Keys.Delete && dataGridView1.SelectedRows.Count > 0) + { + // Подтверждение удаления + DialogResult result = MessageBox.Show("Вы уверены, что хотите удалить выбранную запись?", + "Подтверждение удаления", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); + if (result == DialogResult.Yes) + { + try + { + foreach (DataGridViewRow row in dataGridView1.SelectedRows) + { + if (!row.IsNewRow) // Не даём удалять последнюю "пустую" строку + { + // Получаем Id из столбца "Id" + int id = Convert.ToInt32(row.Cells["Id"].Value); // Приводим значение Id к типу int + + // Удаляем запись через логику + _checkerLogic.Delete(new CheckerBindingModel() + { + Id = id + }); + + // Удаляем строку из DataGridView + dataGridView1.Rows.Remove(row); + } + } + + // Сообщаем об успешном удалении + MessageBox.Show("Запись успешно удалена", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Information); + LoadData(); + } + catch (Exception ex) + { + // Выводим сообщение об ошибке + MessageBox.Show($"Ошибка при удалении записи: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + e.Handled = true; + } + } + + private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) + { + string? userInput = e.FormattedValue.ToString(); + + if (string.IsNullOrWhiteSpace(userInput)) + { + MessageBox.Show("Нельзя сохранять пустую запись!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + e.Cancel = true; // Отменяем завершение редактирования, если строка пустая + } + } } } diff --git a/WinFormUchetLab/WinFormUchetLab/FormChecker.resx b/WinFormUchetLab/WinFormUchetLab/FormChecker.resx index 1af7de1..7a70ed7 100644 --- a/WinFormUchetLab/WinFormUchetLab/FormChecker.resx +++ b/WinFormUchetLab/WinFormUchetLab/FormChecker.resx @@ -1,17 +1,17 @@  - @@ -117,4 +117,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + + + True + \ No newline at end of file diff --git a/WinFormUchetLab/WinFormUchetLab/FormLab.Designer.cs b/WinFormUchetLab/WinFormUchetLab/FormLab.Designer.cs index 08e5f3a..232b993 100644 --- a/WinFormUchetLab/WinFormUchetLab/FormLab.Designer.cs +++ b/WinFormUchetLab/WinFormUchetLab/FormLab.Designer.cs @@ -28,12 +28,140 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "FormLab"; + textBoxTask = new TextBox(); + textBoxImage = new TextBox(); + customTextBox4Date1 = new Visual_components_Kouvshinoff.CustomTextBox4Date(); + buttonSave = new Button(); + buttonCancel = new Button(); + label1 = new Label(); + label2 = new Label(); + label3 = new Label(); + label4 = new Label(); + controlSelectedListBoxSingle1 = new ControlsLibraryNet60.Selected.ControlSelectedListBoxSingle(); + SuspendLayout(); + // + // textBoxTask + // + textBoxTask.Location = new Point(13, 32); + textBoxTask.Name = "textBoxTask"; + textBoxTask.Size = new Size(468, 27); + textBoxTask.TabIndex = 0; + // + // textBoxImage + // + textBoxImage.Location = new Point(13, 85); + textBoxImage.Name = "textBoxImage"; + textBoxImage.Size = new Size(468, 27); + textBoxImage.TabIndex = 1; + textBoxImage.Click += textBoxImage_Click; + // + // customTextBox4Date1 + // + customTextBox4Date1.Location = new Point(15, 285); + customTextBox4Date1.Margin = new Padding(3, 4, 3, 4); + customTextBox4Date1.Name = "customTextBox4Date1"; + customTextBox4Date1.pattern = null; + customTextBox4Date1.Size = new Size(468, 59); + customTextBox4Date1.TabIndex = 3; + // + // buttonSave + // + buttonSave.Location = new Point(13, 351); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(94, 29); + buttonSave.TabIndex = 4; + buttonSave.Text = "сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += buttonSave_Click; + // + // buttonCancel + // + buttonCancel.Location = new Point(387, 351); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(94, 29); + buttonCancel.TabIndex = 5; + buttonCancel.Text = "отменить"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += buttonCancel_Click; + // + // label1 + // + label1.AutoSize = true; + label1.Location = new Point(13, 9); + label1.Name = "label1"; + label1.Size = new Size(200, 20); + label1.TabIndex = 6; + label1.Text = "задание для лабораторной"; + // + // label2 + // + label2.AutoSize = true; + label2.Location = new Point(12, 62); + label2.Name = "label2"; + label2.Size = new Size(105, 20); + label2.TabIndex = 7; + label2.Text = "изображение"; + // + // label3 + // + label3.AutoSize = true; + label3.Location = new Point(13, 115); + label3.Name = "label3"; + label3.Size = new Size(111, 20); + label3.TabIndex = 8; + label3.Text = "проверяющий"; + // + // label4 + // + label4.AutoSize = true; + label4.Location = new Point(13, 261); + label4.Name = "label4"; + label4.Size = new Size(83, 20); + label4.TabIndex = 9; + label4.Text = "дата сдачи"; + // + // controlSelectedListBoxSingle1 + // + controlSelectedListBoxSingle1.Location = new Point(12, 140); + controlSelectedListBoxSingle1.Margin = new Padding(4, 5, 4, 5); + controlSelectedListBoxSingle1.Name = "controlSelectedListBoxSingle1"; + controlSelectedListBoxSingle1.SelectedElement = ""; + controlSelectedListBoxSingle1.Size = new Size(471, 116); + controlSelectedListBoxSingle1.TabIndex = 10; + // + // FormLab + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(495, 402); + Controls.Add(controlSelectedListBoxSingle1); + Controls.Add(label4); + Controls.Add(label3); + Controls.Add(label2); + Controls.Add(label1); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(customTextBox4Date1); + Controls.Add(textBoxImage); + Controls.Add(textBoxTask); + Name = "FormLab"; + Text = "FormLab"; + Load += FormLab_Load; + ResumeLayout(false); + PerformLayout(); } #endregion + + private TextBox textBoxTask; + private TextBox textBoxImage; + private Visual_components_Kouvshinoff.CustomTextBox4Date customTextBox4Date1; + private Button buttonSave; + private Button buttonCancel; + private Label label1; + private Label label2; + private Label label3; + private Label label4; + private ControlsLibraryNet60.Selected.ControlSelectedListBoxSingle controlSelectedListBoxSingle1; } } \ No newline at end of file diff --git a/WinFormUchetLab/WinFormUchetLab/FormLab.cs b/WinFormUchetLab/WinFormUchetLab/FormLab.cs index b08657b..edc0a82 100644 --- a/WinFormUchetLab/WinFormUchetLab/FormLab.cs +++ b/WinFormUchetLab/WinFormUchetLab/FormLab.cs @@ -1,20 +1,137 @@ -using System; +using ControlsLibraryNet60.Selected; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; +using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using UchetLabContracts.BindingModels; +using UchetLabContracts.BusinessLogicsContracts; +using UchetLabContracts.SearchModels; namespace WinFormUchetLab { public partial class FormLab : Form { - public FormLab() + private readonly ILabLogic _labLogic; + private readonly ICheckerLogic _checkerLogic; + private int? _id; + + public int Id { set { _id = value; } } + public FormLab(ILabLogic labLogic, ICheckerLogic checkerLogic) { + _labLogic = labLogic; + _checkerLogic = checkerLogic; InitializeComponent(); + customTextBox4Date1.pattern = "dd.MM.yyyy"; + } + + private void FormLab_Load(object sender, EventArgs e) + { + var listChecker = _checkerLogic.ReadList(null); + if (listChecker != null) + { + foreach (var type in listChecker) + { + controlSelectedListBoxSingle1.AddElement(type.FIO); + } + } + + if (!_id.HasValue) + { + return; + } + + try + { + var lab = _labLogic.ReadElement(new LabSearchModel { Id = _id.Value }); + if (lab == null) + { + return; + } + + textBoxTask.Text = lab.LabTask; + controlSelectedListBoxSingle1.SelectedElement = lab.Checker; + textBoxImage.Text = lab.TaskImage; + customTextBox4Date1.date = lab.CheckDate; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void buttonSave_Click(object sender, EventArgs e) + { + customTextBox4Date1.pattern = "dd.MM.yyyy"; + + if (string.IsNullOrEmpty(textBoxTask.Text)) + { + MessageBox.Show("Заполните задание", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (string.IsNullOrEmpty(textBoxImage.Text)) + { + MessageBox.Show("Приложите картинку!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (string.IsNullOrEmpty(controlSelectedListBoxSingle1.SelectedElement)) + { + MessageBox.Show("Выберите проверяющего!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (customTextBox4Date1.date == null) + { + MessageBox.Show("Введите дату сдачи!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + try + { + var model = new LabBindingModel + { + Id = _id ?? 0, + LabTask = textBoxTask.Text, + TaskImage = textBoxImage.Text, + Checker = controlSelectedListBoxSingle1.SelectedElement, + CheckDate = customTextBox4Date1.date, + }; + + var operatingResult = _id.HasValue ? _labLogic.Update(model) : _labLogic.Create(model); + if (!operatingResult) + { + throw new Exception("Ошибка при создании сущности 'Счет'!"); + } + + MessageBox.Show("Создание сущности 'Лабораторная' прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); + DialogResult = DialogResult.OK; + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void buttonCancel_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + Close(); + } + + private void textBoxImage_Click(object sender, EventArgs e) + { + using (var dialog = new OpenFileDialog { Filter = "jpg|*.jpg" }) + { + if (dialog.ShowDialog() == DialogResult.OK) + { + textBoxImage.Text = dialog.FileName.ToString(); + } + } } } } diff --git a/WinFormUchetLab/WinFormUchetLab/FormLab.resx b/WinFormUchetLab/WinFormUchetLab/FormLab.resx index 1af7de1..8b2ff64 100644 --- a/WinFormUchetLab/WinFormUchetLab/FormLab.resx +++ b/WinFormUchetLab/WinFormUchetLab/FormLab.resx @@ -1,17 +1,17 @@  - diff --git a/WinFormUchetLab/WinFormUchetLab/Form1.Designer.cs b/WinFormUchetLab/WinFormUchetLab/FormMain.Designer.cs similarity index 74% rename from WinFormUchetLab/WinFormUchetLab/Form1.Designer.cs rename to WinFormUchetLab/WinFormUchetLab/FormMain.Designer.cs index 876818c..30cce7c 100644 --- a/WinFormUchetLab/WinFormUchetLab/Form1.Designer.cs +++ b/WinFormUchetLab/WinFormUchetLab/FormMain.Designer.cs @@ -1,6 +1,6 @@ namespace WinFormUchetLab { - partial class Form1 + partial class FormMain { /// /// Required designer variable. @@ -29,7 +29,6 @@ private void InitializeComponent() { components = new System.ComponentModel.Container(); - controlDataTableTable1 = new ControlsLibraryNet60.Data.ControlDataTableTable(); controlDataTableRow1 = new ControlsLibraryNet60.Data.ControlDataTableRow(); contextMenuStrip1 = new ContextMenuStrip(components); создатьToolStripMenuItem = new ToolStripMenuItem(); @@ -41,20 +40,15 @@ лабаToolStripMenuItem = new ToolStripMenuItem(); pdfImage = new CustomComponents.NonVisualComponents.PdfImage(components); customExcelTable = new Non_visual_components_Kouvshinoff.CustomComponentExcelTableWithHeader(components); + componentDocumentWithChartBarWord1 = new ComponentsLibraryNet60.DocumentWithChart.ComponentDocumentWithChartBarWord(components); contextMenuStrip1.SuspendLayout(); SuspendLayout(); // - // controlDataTableTable1 - // - controlDataTableTable1.Location = new Point(0, 0); - controlDataTableTable1.Margin = new Padding(4, 5, 4, 5); - controlDataTableTable1.Name = "controlDataTableTable1"; - controlDataTableTable1.SelectedRowIndex = -1; - controlDataTableTable1.Size = new Size(799, 447); - controlDataTableTable1.TabIndex = 0; - // // controlDataTableRow1 // + controlDataTableRow1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + controlDataTableRow1.AutoSize = true; + controlDataTableRow1.ContextMenuStrip = contextMenuStrip1; controlDataTableRow1.Location = new Point(13, 65); controlDataTableRow1.Margin = new Padding(4, 5, 4, 5); controlDataTableRow1.Name = "controlDataTableRow1"; @@ -67,67 +61,73 @@ contextMenuStrip1.ImageScalingSize = new Size(20, 20); contextMenuStrip1.Items.AddRange(new ToolStripItem[] { создатьToolStripMenuItem, изменитьToolStripMenuItem, удалитьToolStripMenuItem, wordToolStripMenuItem, excelToolStripMenuItem, pdfToolStripMenuItem, лабаToolStripMenuItem }); contextMenuStrip1.Name = "contextMenuStrip1"; - contextMenuStrip1.Size = new Size(146, 172); + contextMenuStrip1.ShowImageMargin = false; + contextMenuStrip1.Size = new Size(121, 172); // // создатьToolStripMenuItem // создатьToolStripMenuItem.Name = "создатьToolStripMenuItem"; - создатьToolStripMenuItem.Size = new Size(145, 24); + создатьToolStripMenuItem.Size = new Size(120, 24); создатьToolStripMenuItem.Text = "создать"; + создатьToolStripMenuItem.Click += создатьToolStripMenuItem_Click; // // изменитьToolStripMenuItem // изменитьToolStripMenuItem.Name = "изменитьToolStripMenuItem"; - изменитьToolStripMenuItem.Size = new Size(145, 24); + изменитьToolStripMenuItem.Size = new Size(120, 24); изменитьToolStripMenuItem.Text = "изменить"; + изменитьToolStripMenuItem.Click += изменитьToolStripMenuItem_Click; // // удалитьToolStripMenuItem // удалитьToolStripMenuItem.Name = "удалитьToolStripMenuItem"; - удалитьToolStripMenuItem.Size = new Size(145, 24); + удалитьToolStripMenuItem.Size = new Size(120, 24); удалитьToolStripMenuItem.Text = "удалить"; + удалитьToolStripMenuItem.Click += удалитьToolStripMenuItem_Click; // // wordToolStripMenuItem // wordToolStripMenuItem.Name = "wordToolStripMenuItem"; - wordToolStripMenuItem.Size = new Size(145, 24); + wordToolStripMenuItem.Size = new Size(120, 24); wordToolStripMenuItem.Text = "word"; + wordToolStripMenuItem.Click += wordToolStripMenuItem_Click; // // excelToolStripMenuItem // excelToolStripMenuItem.Name = "excelToolStripMenuItem"; - excelToolStripMenuItem.Size = new Size(145, 24); + excelToolStripMenuItem.Size = new Size(120, 24); excelToolStripMenuItem.Text = "excel"; + excelToolStripMenuItem.Click += excelToolStripMenuItem_Click; // // pdfToolStripMenuItem // pdfToolStripMenuItem.Name = "pdfToolStripMenuItem"; - pdfToolStripMenuItem.Size = new Size(145, 24); + pdfToolStripMenuItem.Size = new Size(120, 24); pdfToolStripMenuItem.Text = "pdf"; + pdfToolStripMenuItem.Click += pdfToolStripMenuItem_Click; // // лабаToolStripMenuItem // лабаToolStripMenuItem.Name = "лабаToolStripMenuItem"; - лабаToolStripMenuItem.Size = new Size(145, 24); + лабаToolStripMenuItem.Size = new Size(120, 24); лабаToolStripMenuItem.Text = "лаба"; + лабаToolStripMenuItem.Click += лабаToolStripMenuItem_Click; // - // Form1 + // FormMain // AutoScaleDimensions = new SizeF(8F, 20F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(800, 450); Controls.Add(controlDataTableRow1); - Controls.Add(controlDataTableTable1); - Name = "Form1"; - Text = "Form1"; + Name = "FormMain"; + Text = "FormMain"; Load += Form1_Load; contextMenuStrip1.ResumeLayout(false); ResumeLayout(false); + PerformLayout(); } #endregion - - private ControlsLibraryNet60.Data.ControlDataTableTable controlDataTableTable1; private ControlsLibraryNet60.Data.ControlDataTableRow controlDataTableRow1; private ContextMenuStrip contextMenuStrip1; private ToolStripMenuItem создатьToolStripMenuItem; @@ -139,5 +139,6 @@ private ToolStripMenuItem лабаToolStripMenuItem; private CustomComponents.NonVisualComponents.PdfImage pdfImage; private Non_visual_components_Kouvshinoff.CustomComponentExcelTableWithHeader customExcelTable; + private ComponentsLibraryNet60.DocumentWithChart.ComponentDocumentWithChartBarWord componentDocumentWithChartBarWord1; } } diff --git a/WinFormUchetLab/WinFormUchetLab/Form1.cs b/WinFormUchetLab/WinFormUchetLab/FormMain.cs similarity index 79% rename from WinFormUchetLab/WinFormUchetLab/Form1.cs rename to WinFormUchetLab/WinFormUchetLab/FormMain.cs index d7d4744..415d766 100644 --- a/WinFormUchetLab/WinFormUchetLab/Form1.cs +++ b/WinFormUchetLab/WinFormUchetLab/FormMain.cs @@ -16,11 +16,11 @@ using UchetLabContracts.ViewModels; namespace WinFormUchetLab { - public partial class Form1 : Form + public partial class FormMain : Form { private readonly ILabLogic _labLogic; private readonly ICheckerLogic _checkerLogic; - public Form1(ILabLogic dishLogic, ICheckerLogic orderLogic) + public FormMain(ILabLogic dishLogic, ICheckerLogic orderLogic) { _labLogic = dishLogic; _checkerLogic = orderLogic; @@ -111,7 +111,7 @@ namespace WinFormUchetLab var selectedLab = controlDataTableRow1.GetSelectedObject(); if (selectedLab == null) { - MessageBox.Show(" !", "", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show(" !", "", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } @@ -169,7 +169,7 @@ namespace WinFormUchetLab } string[] imagesArray = images.ToArray(); - pdfImage.CreatePdfDoc(new DataForImage(fileName, " ", imagesArray)); + pdfImage.CreatePdfDoc(new DataForImage(fileName, " ", imagesArray)); } } catch (Exception ex) @@ -229,22 +229,22 @@ namespace WinFormUchetLab var data = new Dictionary>(); - var orders = _orderLogic.ReadList(null); + var labs = _labLogic.ReadList(null); - var groupedOrders = orders.GroupBy(order => order.Dish) + var groupedLabs = labs.GroupBy(lab => lab.Checker) .Select(group => new { - DishName = group.Key, - OrderCount = group.Count() + CheckerName = group.Key, + LabCount = group.Count() }) .ToList(); - data[""] = new List<(int Date, double Value)>(); + data[""] = new List<(int Date, double Value)>(); int counter = 1; - foreach (var group in groupedOrders) + foreach (var group in groupedLabs) { - data[""].Add((counter, group.OrderCount)); + data[""].Add((counter, group.LabCount)); counter++; } @@ -252,11 +252,11 @@ namespace WinFormUchetLab try { - componentDocumentWithChartBarWord.CreateDoc(new ComponentDocumentWithChartConfig + componentDocumentWithChartBarWord1.CreateDoc(new ComponentDocumentWithChartConfig { Header = "test", FilePath = fileName, - ChartTitle = " ", + ChartTitle = " ", LegendLocation = ComponentsLibraryNet60.Models.Location.Bottom, Data = data }); @@ -266,7 +266,49 @@ namespace WinFormUchetLab MessageBox.Show(ex.Message, ""); } } + private void ToolStripMenuItem_Click(object sender, EventArgs e) + { + AddElement(); + } + private void ToolStripMenuItem_Click(object sender, EventArgs e) + { + UpdateElement(); + } + private void ToolStripMenuItem_Click(object sender, EventArgs e) + { + DeleteElement(); + } + + private void wordToolStripMenuItem_Click(object sender, EventArgs e) + { + CreateWord(); + } + + private void excelToolStripMenuItem_Click(object sender, EventArgs e) + { + CreateExcel(); + } + + private void pdfToolStripMenuItem_Click(object sender, EventArgs e) + { + CreatePdf(); + } + private void ShowFormChecker() + { + var service = Program.ServiceProvider?.GetService(typeof(FormChecker)); + if (!(service is FormChecker form)) + { + return; + } + + form.ShowDialog(); + } + + private void ToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowFormChecker(); + } } } diff --git a/WinFormUchetLab/WinFormUchetLab/Form1.resx b/WinFormUchetLab/WinFormUchetLab/FormMain.resx similarity index 96% rename from WinFormUchetLab/WinFormUchetLab/Form1.resx rename to WinFormUchetLab/WinFormUchetLab/FormMain.resx index f8cfc15..adcb0b2 100644 --- a/WinFormUchetLab/WinFormUchetLab/Form1.resx +++ b/WinFormUchetLab/WinFormUchetLab/FormMain.resx @@ -126,4 +126,7 @@ 323, 17 + + 496, 17 + \ No newline at end of file diff --git a/WinFormUchetLab/WinFormUchetLab/Program.cs b/WinFormUchetLab/WinFormUchetLab/Program.cs index a35934a..d661543 100644 --- a/WinFormUchetLab/WinFormUchetLab/Program.cs +++ b/WinFormUchetLab/WinFormUchetLab/Program.cs @@ -28,7 +28,7 @@ namespace WinFormUchetLab ConfigureServices(services); _serviceProvider = services.BuildServiceProvider(); - Application.Run(_serviceProvider.GetRequiredService()); + Application.Run(_serviceProvider.GetRequiredService()); } private static void ConfigureServices(ServiceCollection services) { @@ -48,7 +48,7 @@ namespace WinFormUchetLab services.AddTransient(); // IoC-, - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); } diff --git a/WinFormUchetLab/WinFormUchetLab/SingletonDatabase.cs b/WinFormUchetLab/WinFormUchetLab/SingletonDatabase.cs new file mode 100644 index 0000000..1f2e24e --- /dev/null +++ b/WinFormUchetLab/WinFormUchetLab/SingletonDatabase.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UchetLabContracts.StorageContracts; +using UchetLabDatabaseImplement.Implements; + +namespace WinFormUchetLab +{ + public static class SingletonDatabase + { + private static ILabStorage? _labStorage = null; + public static ILabStorage LabStorage + { + get + { + if (_labStorage == null) + _labStorage = new LabStorage(); + return _labStorage; + } + } + + private static ICheckerStorage? _checkerStorage = null; + public static ICheckerStorage CheckerStorage + { + get + { + if (_checkerStorage == null) + _checkerStorage = new CheckerStorage(); + return _checkerStorage; + } + } + } +}