diff --git a/AirBomber/AirBomber/AirBomber.csproj b/AirBomber/AirBomber/AirBomber.csproj index 13ee123..e65c673 100644 --- a/AirBomber/AirBomber/AirBomber.csproj +++ b/AirBomber/AirBomber/AirBomber.csproj @@ -8,6 +8,12 @@ enable + + + + + + True diff --git a/AirBomber/AirBomber/FormPlaneCollection.cs b/AirBomber/AirBomber/FormPlaneCollection.cs index 947e102..fdbe73a 100644 --- a/AirBomber/AirBomber/FormPlaneCollection.cs +++ b/AirBomber/AirBomber/FormPlaneCollection.cs @@ -10,7 +10,9 @@ using System.Windows.Forms; using Microsoft.VisualBasic.Logging; using AirBomber.Exceptions; using Serilog; -using Log = Serilog.Log; +using _logger = Serilog.Log; +using System.Xml.Linq; +using System.Linq.Expressions; namespace AirBomber { @@ -82,11 +84,13 @@ namespace AirBomber if (obj + plane > -1) { MessageBox.Show("Объект добавлен"); + _logger.Information("Объект добавлен"); pictureBoxCollection.Image = obj.ShowPlanes(); } else { MessageBox.Show("Не удалось добавить объект"); + _logger.Warning("Не удалось добавить объект"); } } /// @@ -110,14 +114,23 @@ namespace AirBomber return; } int pos = Convert.ToInt32(maskedTextBoxNumber.Text); - if (obj - pos != null) + try { - MessageBox.Show("Объект удален"); - pictureBoxCollection.Image = obj.ShowPlanes(); + if (obj - pos != null) + { + MessageBox.Show("Объект удален"); + _logger.Information("Объект удален"); + pictureBoxCollection.Image = obj.ShowPlanes(); + } + else + { + MessageBox.Show("Не удалось удалить объект"); + _logger.Warning("Не удалось удалить объект"); + } } - else + catch (PlaneNotFoundException ex) { - MessageBox.Show("Не удалось удалить объект"); + MessageBox.Show(ex.Message); } } /// @@ -147,23 +160,26 @@ namespace AirBomber { if (string.IsNullOrEmpty(textBoxStorageName.Text)) { - MessageBox.Show("Не все данные заполнены", "Ошибка", - MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show("Не все данные заполнены", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.Warning("Не все данные заполнены"); return; } _storage.AddSet(textBoxStorageName.Text); ReloadObjects(); + _logger.Information($"Добавлен набор: {textBoxStorageName.Text}"); } private void buttonDelObject_Click(object sender, EventArgs e) { + string Name = listBoxStorages.SelectedItem.ToString() ?? string.Empty; if (listBoxStorages.SelectedIndex == -1) { return; } - if (MessageBox.Show($"Удалить объект{listBoxStorages.SelectedItem}?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + if (MessageBox.Show($"Удалить набор {Name}?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { - _storage.DelSet(listBoxStorages.SelectedItem.ToString() ?? string.Empty); + _storage.DelSet(Name); ReloadObjects(); + _logger.Information($"Удален набор: {Name}"); } } /// @@ -175,13 +191,15 @@ namespace AirBomber { if (saveFileDialog.ShowDialog() == DialogResult.OK) { - if (_storage.SaveData(saveFileDialog.FileName)) + try { MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + _logger.Information("Сохранение прошло успешно"); } - else + catch (Exception ex) { MessageBox.Show("Не сохранилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.Warning($"Не сохранилось: {ex.Message}"); } } } @@ -195,15 +213,17 @@ namespace AirBomber // TODO продумать логику DONE if (openFileDialog.ShowDialog() == DialogResult.OK) { - if (_storage.LoadData(openFileDialog.FileName)) + try { + _storage.LoadData(openFileDialog.FileName); MessageBox.Show("Загрузка прошла успешно!", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + _logger.Information("Загрузка прошла успешно"); ReloadObjects(); } - else + catch(Exception ex) { - MessageBox.Show("Не загрузилось!", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); - + MessageBox.Show("Не загрузилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.Warning($"Не загрузилось: {ex.Message}"); } } } diff --git a/AirBomber/AirBomber/Program.cs b/AirBomber/AirBomber/Program.cs index e7cb4a7..d3007a7 100644 --- a/AirBomber/AirBomber/Program.cs +++ b/AirBomber/AirBomber/Program.cs @@ -1,3 +1,9 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using NLog.Extensions.Logging; +using Serilog; + namespace AirBomber { internal static class Program @@ -11,7 +17,13 @@ namespace AirBomber // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); - Application.Run(new FormPlaneCollection()); + var services = new ServiceCollection(); + ConfigureServices(services); + using (ServiceProvider serviceProvider = services.BuildServiceProvider()) + { + Application.Run(serviceProvider.GetRequiredService()); + } + //Application.Run(new FormPlaneCollection()); } } } \ No newline at end of file diff --git a/AirBomber/AirBomber/SetGeneric.cs b/AirBomber/AirBomber/SetGeneric.cs index 731639c..636bc27 100644 --- a/AirBomber/AirBomber/SetGeneric.cs +++ b/AirBomber/AirBomber/SetGeneric.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using AirBomber.Exceptions; namespace AirBomber {