Некоторые изменения

This commit is contained in:
SAliulov 2024-06-17 11:42:34 +03:00
parent 88cbd86feb
commit 27d8385bad
4 changed files with 29 additions and 15 deletions

View File

@ -60,7 +60,7 @@ public abstract class AbstractCompany
/// <returns></returns> /// <returns></returns>
public static int operator +(AbstractCompany company, DrawningBomber bomber) public static int operator +(AbstractCompany company, DrawningBomber bomber)
{ {
return company._collection.Insert(bomber, new DrawningAirCraftEqutables()); return company._collection.Insert(bomber, new DrawningBomberEqutables());
} }
/// <summary> /// <summary>

View File

@ -146,7 +146,8 @@ public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
} }
public void CollectionSort(IComparer<T?> comparer) public void CollectionSort(IComparer<T?> comparer)
{ {
List<T?> lst = [.. _collection]; List<T?> value = [.. _collection];
List<T?> lst = value;
lst.Sort(comparer.Compare); lst.Sort(comparer.Compare);
for (int i = 0; i < _collection.Length; ++i) for (int i = 0; i < _collection.Length; ++i)
{ {

View File

@ -6,7 +6,7 @@ namespace ProjectAirBomber.Drawnings;
/// <summary> /// <summary>
/// Реализация сравнения двух объектов класса-прорисовки /// Реализация сравнения двух объектов класса-прорисовки
/// </summary> /// </summary>
public class DrawningAirCraftEqutables : IEqualityComparer<DrawningBomber?> public class DrawningBomberEqutables : IEqualityComparer<DrawningBomber?>
{ {
public bool Equals(DrawningBomber? x, DrawningBomber? y) public bool Equals(DrawningBomber? x, DrawningBomber? y)
{ {

View File

@ -2,6 +2,7 @@
using ProjectAirBomber.CollectionGenericObjects; using ProjectAirBomber.CollectionGenericObjects;
using ProjectAirBomber.Drawnings; using ProjectAirBomber.Drawnings;
using ProjectAirBomber.Exceptions; using ProjectAirBomber.Exceptions;
using System.Xml.Linq;
namespace ProjectAirBomber; namespace ProjectAirBomber;
@ -81,7 +82,12 @@ public partial class FormBomberCollection : Form
catch (CollectionOverflowException ex) catch (CollectionOverflowException ex)
{ {
MessageBox.Show("Не удалось добавить объект"); MessageBox.Show("Не удалось добавить объект");
_logger.LogError($"Не удалось добавить объект: {ex.Message}"); _logger.LogWarning($"Не удалось добавить объект: {ex.Message}");
}
catch (ObjectAlreadyExistsException)
{
MessageBox.Show("Такой объект уже существует");
_logger.LogError("Ошибка: такой объект уже существует {0}", bomber);
} }
} }
@ -109,18 +115,18 @@ public partial class FormBomberCollection : Form
{ {
object decrementObject = _company - pos; object decrementObject = _company - pos;
MessageBox.Show("Объект удален"); MessageBox.Show("Объект удален");
_logger.LogInformation($"Удален объект по позиции {pos}"); _logger.LogInformation($"Удален по позиции {pos}");
pictureBox.Image = _company.Show(); pictureBox.Image = _company.Show();
} }
catch (ObjectNotFoundException) catch (ObjectNotFoundException ex)
{ {
MessageBox.Show("Объект не найден"); MessageBox.Show("Объект не найден");
_logger.LogError($"Удаление не найденного объекта в позиции {pos} "); _logger.LogWarning($"Удаление не найденного объекта в позиции {pos} ");
} }
catch (PositionOutOfCollectionException) catch (PositionOutOfCollectionException)
{ {
MessageBox.Show("Удаление вне рамках коллекции"); MessageBox.Show("Удаление вне рамках коллекции");
_logger.LogError($"Удаление объекта за пределами коллекции {pos} "); _logger.LogWarning($"Удаление объекта за пределами коллекции {pos} ");
} }
} }
@ -135,7 +141,6 @@ public partial class FormBomberCollection : Form
{ {
return; return;
} }
try try
{ {
DrawningBomber? bomber = null; DrawningBomber? bomber = null;
@ -190,8 +195,8 @@ public partial class FormBomberCollection : Form
if (string.IsNullOrEmpty(textBoxCollectionName.Text) || if (string.IsNullOrEmpty(textBoxCollectionName.Text) ||
(!radioButtonList.Checked && !radioButtonMassive.Checked)) (!radioButtonList.Checked && !radioButtonMassive.Checked))
{ {
MessageBox.Show("Не все данные заполнены", "Ошибка", MessageBox.Show("Не все данные заполнены", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBoxButtons.OK, MessageBoxIcon.Error); _logger.LogError("Не заполненная коллекция");
return; return;
} }
CollectionType collectionType = CollectionType.None; CollectionType collectionType = CollectionType.None;
@ -203,8 +208,8 @@ public partial class FormBomberCollection : Form
{ {
collectionType = CollectionType.List; collectionType = CollectionType.List;
} }
_storageCollection.AddCollection(textBoxCollectionName.Text, _storageCollection.AddCollection(textBoxCollectionName.Text, collectionType);
collectionType); _logger.LogInformation($"Добавлена коллекция: {textBoxCollectionName.Text}");
RerfreshListBoxItems(); RerfreshListBoxItems();
} }
/// <summary> /// <summary>
@ -217,14 +222,17 @@ public partial class FormBomberCollection : Form
if (listBoxCollection.SelectedIndex < 0 || listBoxCollection.SelectedItem == null) if (listBoxCollection.SelectedIndex < 0 || listBoxCollection.SelectedItem == null)
{ {
MessageBox.Show("Коллекция не выбрана"); MessageBox.Show("Коллекция не выбрана");
_logger.LogError("Удаление невыбранной коллекции");
return; return;
} }
string name = listBoxCollection.SelectedItem.ToString() ?? string.Empty;
if (MessageBox.Show("Удалить коллекцию?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) if (MessageBox.Show("Удалить коллекцию?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{ {
return; return;
} }
_storageCollection.DelCollection(listBoxCollection.SelectedItem.ToString()); _storageCollection.DelCollection(listBoxCollection.SelectedItem.ToString());
_logger.LogInformation($"Удалена коллекция: {name}");
RerfreshListBoxItems(); RerfreshListBoxItems();
} }
@ -254,20 +262,25 @@ public partial class FormBomberCollection : Form
if (listBoxCollection.SelectedIndex < 0 || listBoxCollection.SelectedItem == null) if (listBoxCollection.SelectedIndex < 0 || listBoxCollection.SelectedItem == null)
{ {
MessageBox.Show("Коллекция не выбрана"); MessageBox.Show("Коллекция не выбрана");
_logger.LogError("Создание компании невыбранной коллекции");
return; return;
} }
ICollectionGenericObjects<DrawningBomber>? collection = _storageCollection[listBoxCollection.SelectedItem.ToString() ?? string.Empty]; ICollectionGenericObjects<DrawningBomber>? collection = _storageCollection[listBoxCollection.SelectedItem.ToString() ?? string.Empty];
if (collection == null) if (collection == null)
{ {
MessageBox.Show("Коллекция не проинициализирована"); MessageBox.Show("Коллекция не проинициализирована");
_logger.LogError("Не удалось инициализировать коллекцию");
return; return;
} }
switch (comboBoxSelectorCompany.Text) switch (comboBoxSelectorCompany.Text)
{ {
case "Хранилище": case "Ангар":
_company = new BomberHungarService(pictureBox.Width, pictureBox.Height, collection); _company = new BomberHungarService(pictureBox.Width, pictureBox.Height, collection);
break; break;
} }
panelCompanyTools.Enabled = true; panelCompanyTools.Enabled = true;
RerfreshListBoxItems(); RerfreshListBoxItems();
} }