diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormMapWithSetBoats.cs b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormMapWithSetBoats.cs
index f8fa592..67bf16b 100644
--- a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormMapWithSetBoats.cs
+++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormMapWithSetBoats.cs
@@ -1,4 +1,5 @@
-using System.Windows.Forms;
+using Microsoft.Extensions.Logging;
+using System.Windows.Forms;
using static System.Windows.Forms.DataFormats;
namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base
@@ -18,11 +19,16 @@ namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base
///
private readonly MapsCollection _mapsCollection;
///
+ /// Логер
+ ///
+ private readonly ILogger _logger;
+ ///
/// Конструктор
///
- public FormMapWithSetBoats()
+ public FormMapWithSetBoats(ILogger logger)
{
InitializeComponent();
+ _logger = logger;
_mapsCollection = new MapsCollection(pictureBox.Width, pictureBox.Height);
comboBoxSelectorMap.Items.Clear();
foreach (var elem in _mapsDict)
@@ -68,6 +74,7 @@ namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base
}
_mapsCollection.AddMap(textBoxNewMapName.Text, _mapsDict[comboBoxSelectorMap.Text]);
ReloadMaps();
+ _logger.LogInformation($"Добавлена карта {textBoxNewMapName.Text}");
}
///
/// Выбор карты
@@ -94,6 +101,7 @@ namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base
_mapsCollection.DelMap(listBoxMaps.SelectedItem?.ToString() ?? string.Empty);
ReloadMaps();
}
+ _logger.LogInformation($"Удалена карта {listBoxMaps.SelectedItem}");
}
///
///
@@ -106,6 +114,7 @@ namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base
var formBoatConfig = new FormBoatConfig();
formBoatConfig.AddEvent(AddBoat);
formBoatConfig.Show();
+ _logger.LogInformation($"Удалена карта {listBoxMaps.SelectedItem}");
}
private void AddBoat(DrawningBoat drawingBoats)
{
@@ -120,18 +129,22 @@ namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base
{
MessageBox.Show("Объект добавлен");
pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet();
+ _logger.LogInformation($"В карту {_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty]} добавлен объект {boat.GetInfo()}");
}
else
{
MessageBox.Show("Невозможно добавить объект");
+ _logger.LogInformation($"Невозможно добавить объект {boat.GetInfo()} в карту {_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty]}");
}
} catch (StorageOverflowException ex)
{
MessageBox.Show($"Ошибка добавления: {ex.Message}");
+ _logger.LogWarning($"Ошибка добавления: {ex.Message}");
}
catch (Exception ex)
{
MessageBox.Show($"Неизвестная ошибка: {ex.Message}");
+ _logger.LogWarning($"Неизвестная ошибка: {ex.Message}");
}
}
@@ -157,21 +170,26 @@ namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base
int pos = Convert.ToInt32(maskedTextBoxPosition.Text);
try
{
- if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] - pos != null)
+ IDrawningObject boat = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] - pos;
+ if (boat != null)
{
MessageBox.Show("Объект удален");
pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet();
+ _logger.LogInformation($"Из карты {_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty]} удален объект {boat.GetInfo()}");
}
else
{
MessageBox.Show("Не удалось удалить объект");
+ _logger.LogInformation($"Невозможно удалить объект {boat.GetInfo()} в карту {_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty]}");
}
} catch (BoatNotFoundException ex)
{
MessageBox.Show($"Ошибка удаления: {ex.Message}");
+ _logger.LogWarning($"Ошибка удаления: {ex.Message}");
} catch (Exception ex)
{
MessageBox.Show($"Неизвестная ошибка: {ex.Message}");
+ _logger.LogWarning($"Неизвестная ошибка: {ex.Message}");
}
}
///
@@ -245,9 +263,11 @@ namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base
{
_mapsCollection.SaveData(saveFileDialog.FileName);
MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ _logger.LogInformation($"Сохранен файл {saveFileDialog.FileName}");
} catch(Exception ex)
{
MessageBox.Show($"Не сохранилось: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ _logger.LogWarning($"Не сохранилось: {ex.Message}");
}
}
}
@@ -265,9 +285,11 @@ namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base
_mapsCollection.LoadData(openFileDialog.FileName);
ReloadMaps();
MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ _logger.LogInformation($"Загружен файл {openFileDialog.FileName}");
} catch (Exception ex)
{
MessageBox.Show("Не загрузилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ _logger.LogWarning($"Не загрузилось: {ex.Message}");
}
}
}
diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/PIbd-22_Kalyshev_Y_V_MotorBoat_Base.csproj b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/PIbd-22_Kalyshev_Y_V_MotorBoat_Base.csproj
index b53c66d..4a22195 100644
--- a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/PIbd-22_Kalyshev_Y_V_MotorBoat_Base.csproj
+++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/PIbd-22_Kalyshev_Y_V_MotorBoat_Base.csproj
@@ -9,4 +9,21 @@
enable
+
+
+
+
+
+
+ Always
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Program.cs b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Program.cs
index 1ab4654..bb3e731 100644
--- a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Program.cs
+++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Program.cs
@@ -1,3 +1,8 @@
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using NLog.Extensions.Logging;
+using System.ServiceProcess;
+
namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base
{
internal static class Program
@@ -11,7 +16,20 @@ namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
- Application.Run(new FormMapWithSetBoats());
+ 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 =>
+ {
+ option.SetMinimumLevel(LogLevel.Information);
+ option.AddNLog("nlog.config");
+ });
}
}
}
\ No newline at end of file
diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/nlog.config b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/nlog.config
new file mode 100644
index 0000000..6d5e25e
--- /dev/null
+++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/nlog.config
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file