From 4fc0549d2efe03c4dd886ea8d169fea677c9efd4 Mon Sep 17 00:00:00 2001 From: sqdselo <147947144+sqdselo@users.noreply.github.com> Date: Mon, 29 Apr 2024 00:51:57 +0400 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HoistingCrane/FormCarCollection.cs | 112 +++++++++--------- HoistingCrane/HoistingCrane/FormCarConfig.cs | 1 + .../HoistingCrane/HoistingCrane.csproj | 11 ++ HoistingCrane/HoistingCrane/Program.cs | 23 +++- HoistingCrane/HoistingCrane/nlog.config | 13 ++ 5 files changed, 100 insertions(+), 60 deletions(-) create mode 100644 HoistingCrane/HoistingCrane/nlog.config diff --git a/HoistingCrane/HoistingCrane/FormCarCollection.cs b/HoistingCrane/HoistingCrane/FormCarCollection.cs index 7fb63e8..acd8ebf 100644 --- a/HoistingCrane/HoistingCrane/FormCarCollection.cs +++ b/HoistingCrane/HoistingCrane/FormCarCollection.cs @@ -1,5 +1,7 @@ using HoistingCrane.CollectionGenericObjects; using HoistingCrane.Drawning; +using HoistingCrane.Entities; +using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.ComponentModel; @@ -17,11 +19,16 @@ namespace HoistingCrane private AbstractCompany? _company; private readonly StorageCollection _storageCollection; - public FormCarCollection() + /// + /// Логгер + /// + private readonly ILogger logger; + public FormCarCollection(ILogger logger) { InitializeComponent(); _storageCollection = new(); panelCompanyTool.Enabled = false; + this.logger = logger; } private void comboBoxSelectorCompany_SelectedIndexChanged(object sender, EventArgs e) { @@ -49,10 +56,6 @@ namespace HoistingCrane MessageBox.Show("Объект добавлен"); pictureBox.Image = _company.Show(); } - //else - //{ - // MessageBox.Show("Не удалось добавить объект"); - //} } private static Color GetColor(Random random) { @@ -72,43 +75,47 @@ namespace HoistingCrane } private void SetCar(DrawningTrackedVehicle drawningTrackedVehicle) { - if (_company == null || drawningTrackedVehicle == null) + + try { + if (_company + drawningTrackedVehicle != -1) + { + MessageBox.Show("Объект добавлен"); + pictureBox.Image = _company.Show(); + logger.LogInformation("Добавлен объект DrawningTrackedVehicle"); + } + else + { + throw new Exception(); + } + } + catch (Exception ex) + { + logger.LogError("Не удалось добавить объект"); return; } - - if (_company + drawningTrackedVehicle != -1) - { - MessageBox.Show("Объект добавлен"); - pictureBox.Image = _company.Show(); - } - //else - //{ - // MessageBox.Show("Не удалось добавить объект"); - //} + } private void buttonDeleteCar_Click(object sender, EventArgs e) { - - if (string.IsNullOrEmpty(maskedTextBox.Text) || _company == null) + try { + if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) throw new Exception(); + if (string.IsNullOrEmpty(maskedTextBox.Text) || _company == null) throw new Exception(); + int pos = Convert.ToInt32(maskedTextBox.Text); + if ((_company - pos) != null) + { + MessageBox.Show("Объект удален!"); + pictureBox.Image = _company.Show(); + logger.LogInformation("удален объект по позиции: {pos}", pos); + } + } + catch(Exception ex) + { + logger.LogError("Не удалось удалить объект по позиции: {pos}", Convert.ToInt32(maskedTextBox.Text)); return; } - if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) - { - return; - } - int pos = Convert.ToInt32(maskedTextBox.Text); - if ((_company - pos) != null) - { - MessageBox.Show("Объект удален!"); - pictureBox.Image = _company.Show(); - } - //else - //{ - // MessageBox.Show("Не удалось удалить объект"); - //} } private void buttonRefresh_Click(object sender, EventArgs e) { @@ -148,6 +155,7 @@ namespace HoistingCrane listBoxCollection.Items.Add(colName); } } + logger.LogInformation("Коллекция успешно обновлена"); } private void buttonCollectionAdd_Click(object sender, EventArgs e) { @@ -184,17 +192,18 @@ namespace HoistingCrane } private void buttonCreateCompany_Click(object sender, EventArgs e) { - if (listBoxCollection.SelectedIndex < 0 || listBoxCollection.SelectedItem == null) + + if (listBoxCollection.SelectedIndex < 0 || listBoxCollection.SelectedItem == null) { MessageBox.Show("Коллекция не выбрана"); return; } ICollectionGenericObjects? collection = _storageCollection[listBoxCollection.SelectedItem.ToString() ?? string.Empty]; - if (collection == null) + if (collection == null) { MessageBox.Show("Коллекция не проинициализирована"); return; - } + }; switch (comboBoxSelectorCompany.Text) { case "Хранилище": @@ -203,6 +212,8 @@ namespace HoistingCrane } panelCompanyTool.Enabled = true; RerfreshListBoxItems(); + + } /// @@ -214,23 +225,16 @@ namespace HoistingCrane { if (saveFileDialog.ShowDialog() == DialogResult.OK) { - bool saveSuccessful = false; try { _storageCollection.SaveData(saveFileDialog.FileName); - saveSuccessful = true; + MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + logger.LogInformation("Сохранение в файл: {filename}", saveFileDialog.FileName); } catch (Exception ex) { - MessageBox.Show("Ошибка при сохранении данных: " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - if (saveSuccessful) - { - MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - else - { - MessageBox.Show("Не сохранилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show(ex.Message, "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + logger.LogError("Ошибка: {Message}", ex.Message); } } } @@ -244,25 +248,17 @@ namespace HoistingCrane { if(openFileDialog.ShowDialog() == DialogResult.OK) { - bool loadSuccessful = false; try { _storageCollection.LoadData(openFileDialog.FileName); - loadSuccessful = true; - } - - catch(Exception ex) - { - MessageBox.Show("Ошибка при загрузке данных: " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - if(loadSuccessful) - { MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); RerfreshListBoxItems(); + logger.LogInformation("Загрузка в файл: {filename}", saveFileDialog.FileName); } - else + catch(Exception ex) { - MessageBox.Show("Не сохранилось", "Результат",MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show(ex.Message, "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + logger.LogError("Ошибка: {Message}", ex.Message); } } } diff --git a/HoistingCrane/HoistingCrane/FormCarConfig.cs b/HoistingCrane/HoistingCrane/FormCarConfig.cs index 1908fc4..96a2990 100644 --- a/HoistingCrane/HoistingCrane/FormCarConfig.cs +++ b/HoistingCrane/HoistingCrane/FormCarConfig.cs @@ -31,6 +31,7 @@ namespace HoistingCrane panelColorPurple.MouseDown += panel_MouseDown; buttonCancel.Click += (sender, e) => Close(); } + /// /// Привязка метода к событию /// diff --git a/HoistingCrane/HoistingCrane/HoistingCrane.csproj b/HoistingCrane/HoistingCrane/HoistingCrane.csproj index 69ac652..5f40a60 100644 --- a/HoistingCrane/HoistingCrane/HoistingCrane.csproj +++ b/HoistingCrane/HoistingCrane/HoistingCrane.csproj @@ -12,6 +12,11 @@ + + + + + True @@ -27,4 +32,10 @@ + + + Always + + + \ No newline at end of file diff --git a/HoistingCrane/HoistingCrane/Program.cs b/HoistingCrane/HoistingCrane/Program.cs index 79d96ff..c5abf19 100644 --- a/HoistingCrane/HoistingCrane/Program.cs +++ b/HoistingCrane/HoistingCrane/Program.cs @@ -1,3 +1,7 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using NLog.Extensions.Logging; + namespace HoistingCrane { internal static class Program @@ -11,8 +15,23 @@ namespace HoistingCrane // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); - Application.Run(new FormCarCollection()); - + ServiceCollection services = new(); + ConfigureServices(services); + using ServiceProvider serviceProvider = services.BuildServiceProvider(); + Application.Run(serviceProvider.GetRequiredService()); + + } + /// + /// DI + /// + /// + private static void ConfigureServices(ServiceCollection services) + { + services.AddSingleton().AddLogging(option => + { + option.SetMinimumLevel(LogLevel.Information); + option.AddNLog("nlog.config"); + }); } } } \ No newline at end of file diff --git a/HoistingCrane/HoistingCrane/nlog.config b/HoistingCrane/HoistingCrane/nlog.config new file mode 100644 index 0000000..3a13aee --- /dev/null +++ b/HoistingCrane/HoistingCrane/nlog.config @@ -0,0 +1,13 @@ + + + + + + + + + + + \ No newline at end of file