From e1c605a649fb57fdb4dd7a365541cfbe9da668dd Mon Sep 17 00:00:00 2001 From: Factorino73 Date: Mon, 23 Sep 2024 13:33:24 +0400 Subject: [PATCH] LabWork03 is Done --- Components/WinForms/FormMain.Designer.cs | 2 +- Components/WinForms/FormMain.cs | 90 ++++++++++++++++++++---- Components/WinForms/FormOrder.cs | 2 +- Components/WinForms/FormOrderTypes.cs | 7 +- 4 files changed, 82 insertions(+), 19 deletions(-) diff --git a/Components/WinForms/FormMain.Designer.cs b/Components/WinForms/FormMain.Designer.cs index 03801cd..991577d 100644 --- a/Components/WinForms/FormMain.Designer.cs +++ b/Components/WinForms/FormMain.Designer.cs @@ -48,7 +48,7 @@ // contextMenuStrip.Items.AddRange(new ToolStripItem[] { createElementToolStripMenuItem, updateElementToolStripMenuItem, deleteElementToolStripMenuItem, createWordDocumentToolStripMenuItem, createExcelDocumentToolStripMenuItem, createPdfDocumentToolStripMenuItem, orderTypesToolStripMenuItem }); contextMenuStrip.Name = "contextMenuStrip"; - contextMenuStrip.Size = new Size(205, 180); + contextMenuStrip.Size = new Size(205, 158); contextMenuStrip.Text = "Контекстное меню"; // // createElementToolStripMenuItem diff --git a/Components/WinForms/FormMain.cs b/Components/WinForms/FormMain.cs index 72ee528..09ba268 100644 --- a/Components/WinForms/FormMain.cs +++ b/Components/WinForms/FormMain.cs @@ -57,7 +57,7 @@ namespace WinForms "Type", "Sum", "Id", - "WaiterFullName", + "WaiterFullName" }; userTreeView.SetHierarchy(hierarchy); @@ -131,13 +131,7 @@ namespace WinForms /// private void orderTypesToolStripMenuItem_Click(object sender, EventArgs e) { - var service = Program.ServiceProvider?.GetService(typeof(FormOrderTypes)); - if (!(service is FormOrderTypes form)) - { - return; - } - - form.ShowDialog(); + ShowFormOrderTypes(); } /// @@ -187,7 +181,7 @@ namespace WinForms } /// - /// Редактировать элемент + /// Редактировать запись /// private void UpdateElement() { @@ -197,7 +191,7 @@ namespace WinForms return; } - var selectedOrder = userTreeView.GetSelectedObject(); + var selectedOrder = userTreeView.GetSelectedObject(); if (selectedOrder == null) { MessageBox.Show("Выберите счет для редактирования!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); @@ -212,16 +206,16 @@ namespace WinForms } /// - /// Удалить элемент + /// Удалить запись /// private void DeleteElement() { - if (MessageBox.Show("Удалить запись", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) + if (MessageBox.Show("Удалить запись?", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } - var selectedOrder = userTreeView.GetSelectedObject(); + var selectedOrder = userTreeView.GetSelectedObject(); int id = Convert.ToInt32(selectedOrder.Id); try { @@ -356,7 +350,7 @@ namespace WinForms int count = 0; foreach (var order in orders) { - if (order.Type == orderType.Name && !string.IsNullOrEmpty(order.Sum)) + if (order.Type == orderType.Name && string.IsNullOrEmpty(order.Sum)) { count++; } @@ -367,5 +361,73 @@ namespace WinForms pdfPieChart1.CreatePieChart(new DataForPieChart(fileName, "Информация по оплаченным счетам каждого типа заказов", "Круговая диаграмма", DiagramLegendEnum.Top, "Типы заказов", items)); } + + /// + /// Вывести форму списка типов заказов + /// + private void ShowFormOrderTypes() + { + var service = Program.ServiceProvider?.GetService(typeof(FormOrderTypes)); + if (!(service is FormOrderTypes form)) + { + return; + } + + form.ShowDialog(); + } + + /// + /// Обработка нажатия кнопок + /// + /// + /// + /// + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) + { + // Ctrl+A - добавить запись + if (keyData == (Keys.Control | Keys.A)) + { + AddElement(); + return true; + } + // Ctrl+U - редактировать запись + if (keyData == (Keys.Control | Keys.U)) + { + UpdateElement(); + return true; + } + // Ctrl+D - удалить запись + if (keyData == (Keys.Control | Keys.D)) + { + DeleteElement(); + return true; + } + // Ctrl+S - создать документ Word + if (keyData == (Keys.Control | Keys.S)) + { + CreateWordDocument(); + return true; + } + // Ctrl+T - создать документ Excel + if (keyData == (Keys.Control | Keys.T)) + { + CreateExcelDocument(); + return true; + } + // Ctrl+C - создать документ Pdf + if (keyData == (Keys.Control | Keys.C)) + { + CreatePdfDocument(); + return true; + } + // Ctrl+M - вывести форму списка типов заказов + if (keyData == (Keys.Control | Keys.M)) + { + ShowFormOrderTypes(); + return true; + } + + return base.ProcessCmdKey(ref msg, keyData); + } } } diff --git a/Components/WinForms/FormOrder.cs b/Components/WinForms/FormOrder.cs index acb1b48..ac9cd64 100644 --- a/Components/WinForms/FormOrder.cs +++ b/Components/WinForms/FormOrder.cs @@ -84,7 +84,7 @@ namespace WinForms textBoxWaiterFullName.Text = order.WaiterFullName; textBoxInfo.Text = order.Info; customComboBox.SelectedItem = order.Type; - if (string.IsNullOrEmpty(order.Sum)) + if (!string.IsNullOrEmpty(order.Sum)) { controlInputNullableDouble.Value = double.Parse(order.Sum!); } diff --git a/Components/WinForms/FormOrderTypes.cs b/Components/WinForms/FormOrderTypes.cs index ba103cb..a53a09f 100644 --- a/Components/WinForms/FormOrderTypes.cs +++ b/Components/WinForms/FormOrderTypes.cs @@ -1,6 +1,7 @@ using Contracts.BindingModels; using Contracts.BusinessLogicsContracts; using DocumentFormat.OpenXml.Office2010.ExcelAc; +using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.ComponentModel; @@ -17,7 +18,7 @@ namespace WinForms /// Форма для типов заказов /// public partial class FormOrderTypes : Form - { + { /// /// Бизнес-логика для сущности "Тип заказа" /// @@ -71,7 +72,7 @@ namespace WinForms Name = name }; - var operatingResult = id == 0 ? _orderTypeLogic.Update(model) : _orderTypeLogic.Create(model); + var operatingResult = id != 0 ? _orderTypeLogic.Update(model) : _orderTypeLogic.Create(model); if (!operatingResult) { throw new Exception("Ошибка при создании сущности 'Тип заказа'!"); @@ -112,7 +113,7 @@ namespace WinForms if (e.KeyData == Keys.Delete) { - if (MessageBox.Show("Удалить выбранный элемент&", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + if (MessageBox.Show("Удалить выбранный элемент?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { _orderTypeLogic.Delete(new OrderTypeBindingModel { Id = (int)dataGridView.CurrentRow.Cells[0].Value }); LoadData();