diff --git a/Battleship/Battleship/Battleship.csproj b/Battleship/Battleship/Battleship.csproj
index df6579a..1a78906 100644
--- a/Battleship/Battleship/Battleship.csproj
+++ b/Battleship/Battleship/Battleship.csproj
@@ -28,4 +28,10 @@
+
+
+ Always
+
+
+
\ No newline at end of file
diff --git a/Battleship/Battleship/CollectionGenericObjects/AbstractCompany.cs b/Battleship/Battleship/CollectionGenericObjects/AbstractCompany.cs
index 886dc4a..b503062 100644
--- a/Battleship/Battleship/CollectionGenericObjects/AbstractCompany.cs
+++ b/Battleship/Battleship/CollectionGenericObjects/AbstractCompany.cs
@@ -32,7 +32,7 @@ public abstract class AbstractCompany
///
/// Вычисление максимального количества элементов, который можно разместить в окне
///
- private int GetMaxCount => _pictureWidth * _pictureHeight / (_placeSizeWidth * _placeSizeHeight) + 2;
+ private int GetMaxCount => _pictureWidth * _pictureHeight / (_placeSizeWidth * _placeSizeHeight);
///
/// Конструктор
diff --git a/Battleship/Battleship/FormWarshipCollection.cs b/Battleship/Battleship/FormWarshipCollection.cs
index 6438b25..62fcb05 100644
--- a/Battleship/Battleship/FormWarshipCollection.cs
+++ b/Battleship/Battleship/FormWarshipCollection.cs
@@ -1,5 +1,6 @@
using Battleship.CollectionGenericObjects;
using Battleship.Drawings;
+using Battleship.Exceptions;
using Microsoft.Extensions.Logging;
using System.Windows.Forms;
@@ -50,8 +51,8 @@ public partial class FormWarshipCollection : Form
private void ButtonAddWarship_Click(object sender, EventArgs e)
{
FormWarshipConfig form = new();
- form.Show();
form.AddEvent(SetWarship);
+ form.Show();
}
@@ -65,15 +66,19 @@ public partial class FormWarshipCollection : Form
{
return;
}
-
- if (_company + warship != -1)
+ try
{
- MessageBox.Show("Объект добавлен");
- pictureBox.Image = _company.Show();
+ if (_company + warship != -1)
+ {
+ MessageBox.Show("Объект добавлен");
+ pictureBox.Image = _company.Show();
+ _logger.LogInformation("Добавлен объект: {object}", warship.GetDataForSave());
+ }
}
- else
+ catch (CollectionOverflowException ex)
{
- MessageBox.Show("Не удалось добавить объект");
+ MessageBox.Show(ex.Message);
+ _logger.LogError("Ошибка: {Message}", ex.Message);
}
}
@@ -96,14 +101,19 @@ public partial class FormWarshipCollection : Form
}
int pos = Convert.ToInt32(maskedTextBox1.Text);
- if (_company - pos != null)
+ try
{
- MessageBox.Show("Объект удален");
- pictureBox.Image = _company.Show();
+ if (_company - pos != null)
+ {
+ MessageBox.Show("Объект удален");
+ pictureBox.Image = _company.Show();
+ _logger.LogInformation("Удален объект по позиции " + pos);
+ }
}
- else
+ catch (ObjectNotFoundException ex)
{
- MessageBox.Show("Не удалось удалить объект");
+ MessageBox.Show(ex.Message);
+ _logger.LogError("Ошибка: {Message}", ex.Message);
}
}
@@ -120,23 +130,34 @@ public partial class FormWarshipCollection : Form
}
DrawingWarship? warship = null;
- int counter = 120;
- while (warship == null)
+ int counter = 100;
+ try
{
- warship = _company.GetRandomObject();
- counter--;
- if (counter <= 0)
+ while (warship == null)
{
- break;
+ warship = _company.GetRandomObject();
+ counter--;
+ if (counter <= 0)
+ {
+ break;
+ }
}
+
+ if (warship == null)
+ {
+ return;
+ }
+
+ FormBattleship form = new()
+ {
+ SetWarship = warship
+ };
+ form.ShowDialog();
}
-
- FormBattleship form = new()
+ catch (Exception ex)
{
- SetWarship = warship
- };
- form.ShowDialog();
-
+ MessageBox.Show(ex.Message, "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
}
///
@@ -178,10 +199,10 @@ public partial class FormWarshipCollection : Form
{
if (string.IsNullOrEmpty(textBoxCollectionName.Text) || (!radioButtonList.Checked && !radioButtonMassive.Checked))
{
- MessageBox.Show("Не все данные заполнены", "Ошибка",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
+ MessageBox.Show("Не все данные заполнены", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
+
CollectionType collectionType = CollectionType.None;
if (radioButtonMassive.Checked)
{
@@ -191,8 +212,10 @@ public partial class FormWarshipCollection : Form
{
collectionType = CollectionType.List;
}
+
_storageCollection.AddCollection(textBoxCollectionName.Text, collectionType);
RerfreshListBoxItems();
+ _logger.LogInformation("Добавлена коллекция: {collectionName} типа: {collectionType}", textBoxCollectionName.Text, collectionType);
}
///
@@ -202,7 +225,7 @@ public partial class FormWarshipCollection : Form
///
private void ButtonCollectionDel_Click(object sender, EventArgs e)
{
- // TODO прописать логику удаления элемента из коллекции
+ //прописать логику удаления элемента из коллекции
// нужно убедиться, что есть выбранная коллекция
// спросить у пользователя через MessageBox, что он подтверждает, что хочет удалить запись
// удалить и обновить ListBox
@@ -211,12 +234,20 @@ public partial class FormWarshipCollection : Form
MessageBox.Show("Коллекция не выбрана");
return;
}
- if (MessageBox.Show("Удалить коллекцию?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
+ try
{
- return;
+ if (MessageBox.Show("Удалить коллекцию?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
+ {
+ return;
+ }
+ _storageCollection.DelCollection(listBoxCollection.SelectedItem.ToString());
+ RerfreshListBoxItems();
+ _logger.LogInformation("Коллекция: " + listBoxCollection.SelectedItem.ToString() + " удалена");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError("Ошибка: {Message}", ex.Message);
}
- _storageCollection.DelCollection(listBoxCollection.SelectedItem.ToString());
- RerfreshListBoxItems();
}
///
@@ -288,13 +319,14 @@ public partial class FormWarshipCollection : Form
_storageCollection.LoadData(openFileDialog1.FileName);
MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
RerfreshListBoxItems();
- _logger.LogInformation("Загрузка из файла: {filename}", openFileDialog1.FileName);
+ _logger.LogInformation("Сохранение в файл: {filename}", openFileDialog1.FileName);
}
catch (Exception ex)
{
- MessageBox.Show(ex.Message, "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ MessageBox.Show("Не сохранилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
_logger.LogError("Ошибка: {Message}", ex.Message);
+
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Battleship/Battleship/nlog.config b/Battleship/Battleship/nlog.config
new file mode 100644
index 0000000..7470629
--- /dev/null
+++ b/Battleship/Battleship/nlog.config
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file