diff --git a/AirBomber/AirBomber/AirBomber.csproj b/AirBomber/AirBomber/AirBomber.csproj
index f7fda9e..d5ebab9 100644
--- a/AirBomber/AirBomber/AirBomber.csproj
+++ b/AirBomber/AirBomber/AirBomber.csproj
@@ -31,6 +31,9 @@
+
+
+
diff --git a/AirBomber/AirBomber/FormMapWithSetAirBomber.cs b/AirBomber/AirBomber/FormMapWithSetAirBomber.cs
index 9b21103..61ec157 100644
--- a/AirBomber/AirBomber/FormMapWithSetAirBomber.cs
+++ b/AirBomber/AirBomber/FormMapWithSetAirBomber.cs
@@ -71,14 +71,28 @@ namespace AirBomber
{
return;
}
- if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + new DrawningObjectBomber(airBomber) > -1)
+ try
{
- MessageBox.Show("Объект добавлен");
- pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet();
+ if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + new DrawningObjectBomber(airBomber) != -1)
+ {
+ MessageBox.Show("Объект добавлен");
+ pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet();
+ _logger.LogInformation($"Добавлен объект: {airBomber} на карте: {listBoxMaps.SelectedItem}");
+ }
+ else
+ {
+ MessageBox.Show("Не удалось добавить объект");
+ }
}
- else
+ catch (StorageOverflowException ex)
{
- MessageBox.Show("Не удалось добавить объект");
+ _logger.LogWarning($"Ошибка переполнения при добавлении объекта: {ex.Message}");
+ MessageBox.Show($"Ошибка переполнения: {ex.Message}");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogWarning($"Неизвестная ошибка при добавлении объекта: {ex.Message}");
+ MessageBox.Show($"Неизвестная ошибка: {ex.Message}");
}
}
@@ -102,6 +116,7 @@ namespace AirBomber
if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] - pos != null)
{
MessageBox.Show("Объект удален");
+ _logger.LogInformation($"Удален объект с позиции: [{pos}] на карте: {listBoxMaps.SelectedItem}");
pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet();
}
else
@@ -111,10 +126,17 @@ namespace AirBomber
}
catch(AirBomberNotFoundException ex)
{
+ _logger.LogWarning($"Ошибка отсутствия объекта на позиции: [{pos}] при его удалении: {ex.Message}");
MessageBox.Show($"Ошибка удаления: {ex.Message}");
}
- catch (Exception ex)
+ catch (StorageOverflowException ex)
{
+ _logger.LogWarning($"Ошибка при удалении объекта на позиции: [{pos}] выходя за рамки поля: {ex.Message}");
+ MessageBox.Show($"Превышение размерности: {ex.Message}");
+ }
+ catch(Exception ex)
+ {
+ _logger.LogWarning($"Неизвестная ошибка при удалении объекта на позиции: [{pos}] : {ex.Message}");
MessageBox.Show($"Неизвестная ошибка: {ex.Message}");
}
}
@@ -126,6 +148,7 @@ namespace AirBomber
return;
}
pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet();
+ _logger.LogInformation($"Переход в хранилище: {listBoxMaps.SelectedItem}");
}
private void ButtonShowOnMap_Click(object sender, EventArgs e)
@@ -135,6 +158,7 @@ namespace AirBomber
return;
}
pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowOnMap();
+ _logger.LogInformation($"Переход на карту: {listBoxMaps.SelectedItem}");
}
private void ButtonMove_Click(object sender, EventArgs e)
@@ -193,10 +217,10 @@ namespace AirBomber
}
if (MessageBox.Show($"Удалить карту {listBoxMaps.SelectedItem}?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
+ _logger.LogInformation($"Удалена карта: {listBoxMaps.SelectedItem}");
_mapsCollection.DelMap(listBoxMaps.SelectedItem?.ToString() ?? string.Empty);
ReloadMaps();
}
-
}
private void SaveToolStripMenuItem_Click(object sender, EventArgs e)
@@ -206,10 +230,12 @@ namespace AirBomber
try
{
_mapsCollection.SaveData(saveFileDialog.FileName);
+ _logger.LogInformation($"Карта успешно сохранена в файл: {saveFileDialog.FileName}");
MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch(Exception ex)
{
+ _logger.LogWarning($"Не сохранилось в файл: {saveFileDialog.FileName}");
MessageBox.Show($"Не сохранилось: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); ; ;
}
}
@@ -222,12 +248,14 @@ namespace AirBomber
try
{
_mapsCollection.LoadData(openFileDialog.FileName);
- MessageBox.Show("Загрузка прошла успешно", "Результат",
+ _logger.LogInformation($"Карта успешно загружена из файла: {openFileDialog.FileName}");
+ MessageBox.Show("Загрузка прошла успешно", "Результат",
MessageBoxButtons.OK, MessageBoxIcon.Information);
ReloadMaps();
}
catch(Exception ex)
{
+ _logger.LogWarning($"Не загрузилось из файла: {openFileDialog.FileName}");
MessageBox.Show($"Не загрузилось: {ex.Message}", "Результат",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
diff --git a/AirBomber/AirBomber/MapsCollection.cs b/AirBomber/AirBomber/MapsCollection.cs
index 94bef9b..7110879 100644
--- a/AirBomber/AirBomber/MapsCollection.cs
+++ b/AirBomber/AirBomber/MapsCollection.cs
@@ -65,8 +65,8 @@ namespace AirBomber
public void LoadData(string filename)
{
if (!File.Exists(filename))
- {
- throw new Exception("Файл не найден");
+ {
+ throw new FileNotFoundException("Файл не найден");
}
string bufferTextFromFile = "";
using (StreamReader sr = new(filename))
@@ -79,7 +79,7 @@ namespace AirBomber
{
if (!str.Contains("MapsCollection"))
{
- throw new Exception("Формат данных в файлен не правильный");
+ throw new FormatException("Формат данных в файле не правильный");
}
else
{
diff --git a/AirBomber/AirBomber/Program.cs b/AirBomber/AirBomber/Program.cs
index d08f98e..6c5fd32 100644
--- a/AirBomber/AirBomber/Program.cs
+++ b/AirBomber/AirBomber/Program.cs
@@ -1,6 +1,7 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;
+using Serilog;
using System.ServiceProcess;
namespace AirBomber
@@ -26,11 +27,13 @@ namespace AirBomber
private static void ConfigureServices(ServiceCollection services)
{
+ var serilogLogger = new LoggerConfiguration().WriteTo.File("seriallog.txt").CreateLogger();
+
services.AddSingleton()
.AddLogging(option =>
{
option.SetMinimumLevel(LogLevel.Information);
- option.AddNLog("nlog.config");
+ option.AddSerilog(logger: serilogLogger, dispose: true);
});
}
}
diff --git a/AirBomber/AirBomber/SetAirBomberGeneric.cs b/AirBomber/AirBomber/SetAirBomberGeneric.cs
index 0651605..4cac74d 100644
--- a/AirBomber/AirBomber/SetAirBomberGeneric.cs
+++ b/AirBomber/AirBomber/SetAirBomberGeneric.cs
@@ -28,7 +28,11 @@ namespace AirBomber
public int Insert(T airBomber, int position)
{
- if (position < 0 || position > _maxCount)
+ if (_places.Count >= _maxCount)
+ {
+ throw new StorageOverflowException(_maxCount);
+ }
+ if (position < 0 || position >= _maxCount)
{
throw new StorageOverflowException(_maxCount);
}
@@ -38,13 +42,13 @@ namespace AirBomber
public T Remove(int position)
{
- if (position < 0 || position > _maxCount)
+ if (position < 0 || position >= _maxCount)
{
throw new StorageOverflowException(_maxCount);
}
T elem = _places[position];
- _places[position] = null;
+ _places.Remove(elem);
if (elem == null)
{
diff --git a/AirBomber/AirBomber/nlog.config b/AirBomber/AirBomber/nlog.config
index 6d5e25e..16c12e3 100644
--- a/AirBomber/AirBomber/nlog.config
+++ b/AirBomber/AirBomber/nlog.config
@@ -4,7 +4,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true" internalLogLevel="Info">
-
+