From 0fb6ab23dc5749abc983f1f46748b03946967cfe Mon Sep 17 00:00:00 2001 From: devil_1nc Date: Tue, 22 Nov 2022 00:41:03 +0400 Subject: [PATCH] com --- .../ProjectPlane/FormMapWithSetPlanes.cs | 59 +++++++++++++------ ProjectPlane/ProjectPlane/Program.cs | 21 +++++-- ProjectPlane/ProjectPlane/ProjectPlane.csproj | 10 +++- ProjectPlane/ProjectPlane/appsettings.json | 17 ++++++ 4 files changed, 82 insertions(+), 25 deletions(-) create mode 100644 ProjectPlane/ProjectPlane/appsettings.json diff --git a/ProjectPlane/ProjectPlane/FormMapWithSetPlanes.cs b/ProjectPlane/ProjectPlane/FormMapWithSetPlanes.cs index ca3a3bf..f5437cf 100644 --- a/ProjectPlane/ProjectPlane/FormMapWithSetPlanes.cs +++ b/ProjectPlane/ProjectPlane/FormMapWithSetPlanes.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using static System.Windows.Forms.DataFormats; namespace ProjectPlane { @@ -28,7 +29,7 @@ namespace ProjectPlane /// /// Заполнение listBoxMaps /// - private readonly ILogger _logger; + private void ReloadMaps() { int index = listBoxMaps.SelectedIndex; @@ -51,7 +52,8 @@ namespace ProjectPlane /// /// Объект от класса карты с набором объектов /// - //private MapWithSetPlanesGeneric _mapPlanesCollectionGeneric = null; + + private readonly ILogger _logger; /// /// Конструктор /// @@ -87,21 +89,32 @@ namespace ProjectPlane } private void AddPlane(DrawingPlane plane) { - if (listBoxMaps.SelectedIndex == -1) + + try { - return; - } + if (listBoxMaps.SelectedIndex == -1) + { + _logger.LogInformation("Ошибка при добавлении объекта: карта не выбрана"); + return; + } - if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + new DrawingObject(plane) != -1) - { - MessageBox.Show("Object added"); - pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + new DrawingObject(plane) != -1) + { + MessageBox.Show("Object added"); + pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + _logger.LogInformation("Ошибка при добавлении:"); + } + else + { + MessageBox.Show("Failed to add object"); + _logger.LogInformation($"Ошибка при добавлении {plane} объекта"); + } } - else + catch(StorageOverflowException ex) { - MessageBox.Show("Failed to add object"); + _logger.LogWarning($"Хранилище переполнено {0}", ex.Message); + MessageBox.Show($"Storage overflow { ex.Message }", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); } - } /// /// Удаление объекта @@ -110,6 +123,7 @@ namespace ProjectPlane /// private void ButtonRemovePlane_Click(object sender, EventArgs e) { + if (listBoxMaps.SelectedIndex == -1) { return; @@ -129,6 +143,7 @@ namespace ProjectPlane { MessageBox.Show("Object removed"); pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + _logger.LogInformation("Удален объект с позиции {0}", pos); } else { @@ -137,11 +152,13 @@ namespace ProjectPlane } catch(PlaneNotFoundException ex) { + _logger.LogWarning("Ошибка: не удалось удалить объект. {0}", ex.Message); MessageBox.Show($"Ошибка удаления: {ex.Message}"); } catch (Exception ex) { MessageBox.Show($"Неизвестная ошибка: {ex.Message}"); + _logger.LogWarning("Произошла неизвестная ошибка: {0}", ex.Message); } } @@ -208,16 +225,18 @@ namespace ProjectPlane if (comboBoxSelectorMap.SelectedIndex == -1 || string.IsNullOrEmpty(textBoxNewMapName.Text)) { MessageBox.Show("Data is not all completed", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.LogInformation("Ошибка: карта {0} не была добавлена: ", comboBoxSelectorMap.SelectedIndex == -1 ? "карта не выбрана" : "карта не названа"); return; } if (!_mapsDict.ContainsKey(comboBoxSelectorMap.Text)) { MessageBox.Show("This map doesn't exist", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.LogInformation($"Ошибка: карта не существует: { textBoxNewMapName.Text }"); return; } _mapsCollection.AddMap(textBoxNewMapName.Text, _mapsDict[comboBoxSelectorMap.Text]); ReloadMaps(); - _logger.LogInformation($"Map added {textBoxNewMapName.Text}"); + _logger.LogInformation($"Добавлена карта {textBoxNewMapName.Text}"); } /// /// Выбор карты @@ -227,6 +246,7 @@ namespace ProjectPlane private void ListBoxMaps_SelectedIndexChanged(object sender, EventArgs e) { pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + _logger.LogInformation("Смена карты на {0}", listBoxMaps.SelectedItem?.ToString() ?? string.Empty); } /// /// Удаление карты @@ -237,12 +257,14 @@ namespace ProjectPlane { if (listBoxMaps.SelectedIndex == -1) { + _logger.LogInformation($"Карта { textBoxNewMapName.Text } не может быть удалена: карта существует") ; return; } if (MessageBox.Show($"Delete {listBoxMaps.SelectedItem}?", "Deleting", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { _mapsCollection.DelMap(listBoxMaps.SelectedItem?.ToString() ?? string.Empty); + _logger.LogInformation($"Карта { listBoxMaps.SelectedItem?.ToString() } удалена"); ReloadMaps(); } } @@ -251,19 +273,19 @@ namespace ProjectPlane { if (openFileDialog.ShowDialog() == DialogResult.OK) { - try { _mapsCollection.LoadData(openFileDialog.FileName); MessageBox.Show("Succesfull loading", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + _logger.LogWarning("Успешная загрузка из файла: {0}", saveFileDialog.FileName); ReloadMaps(); pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); } catch (Exception ex) { + _logger.LogWarning("Ошибка при загрузке из файла: {0}", saveFileDialog.FileName); MessageBox.Show($"Loading failed {ex.Message}", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - + } } } @@ -274,13 +296,14 @@ namespace ProjectPlane try { _mapsCollection.SaveData(saveFileDialog.FileName); + _logger.LogWarning("Успех при сохранении в файл: {0}", saveFileDialog.FileName); MessageBox.Show("Succesfull saving", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch(Exception ex) { + _logger.LogWarning("Ошибка при сохранении в файл: {0}", saveFileDialog.FileName); MessageBox.Show($"Saving failed {ex.Message}", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - + } } } } diff --git a/ProjectPlane/ProjectPlane/Program.cs b/ProjectPlane/ProjectPlane/Program.cs index 833eb87..b3449e2 100644 --- a/ProjectPlane/ProjectPlane/Program.cs +++ b/ProjectPlane/ProjectPlane/Program.cs @@ -1,6 +1,7 @@ +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using NLog.Extensions.Logging; +using Serilog; namespace ProjectPlane { @@ -12,24 +13,32 @@ namespace ProjectPlane [STAThread] static void Main() { + ApplicationConfiguration.Initialize(); var services = new ServiceCollection(); ConfigureServices(services); using (ServiceProvider serviceProvider = services.BuildServiceProvider()) { - Application.Run(serviceProvider.GetRequiredService()); } } private static void ConfigureServices(ServiceCollection services) { - services.AddSingleton() - .AddLogging(option => + services.AddSingleton().AddLogging(option => { + var configuration = new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile(path: "appsettings.json", optional: false, reloadOnChange: true) + .Build(); + + var logger = new LoggerConfiguration() + .ReadFrom.Configuration(configuration) + .CreateLogger(); + option.SetMinimumLevel(LogLevel.Information); - option.AddNLog("nlog.config"); + option.AddSerilog(logger); + }); } - } } \ No newline at end of file diff --git a/ProjectPlane/ProjectPlane/ProjectPlane.csproj b/ProjectPlane/ProjectPlane/ProjectPlane.csproj index e0a1709..f2e5711 100644 --- a/ProjectPlane/ProjectPlane/ProjectPlane.csproj +++ b/ProjectPlane/ProjectPlane/ProjectPlane.csproj @@ -23,10 +23,18 @@ + + + - + + + + + + diff --git a/ProjectPlane/ProjectPlane/appsettings.json b/ProjectPlane/ProjectPlane/appsettings.json new file mode 100644 index 0000000..fb814f9 --- /dev/null +++ b/ProjectPlane/ProjectPlane/appsettings.json @@ -0,0 +1,17 @@ +{ + "Serilog": { + "Using": [ "Serilog.Sinks.File" ], + "MinimumLevel": "Information", + "WriteTo": [ + { + "Name": "File", + "Args": { + "path": "Logs/log_.log", + "rollingInterval": "Day", + "outputTemplate": "[{Timestamp:HH:mm:ss.fff}]{Level:u4}: {Message:lj}{NewLine}{Exception}" + } + } + ], + "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ] + } +} \ No newline at end of file