diff --git a/ProjectMotorBoat/ProjectMotorBoat/CollectionGenericObjects/ListGenericObjects.cs b/ProjectMotorBoat/ProjectMotorBoat/CollectionGenericObjects/ListGenericObjects.cs
index 0f53bbd..ddb1ebe 100644
--- a/ProjectMotorBoat/ProjectMotorBoat/CollectionGenericObjects/ListGenericObjects.cs
+++ b/ProjectMotorBoat/ProjectMotorBoat/CollectionGenericObjects/ListGenericObjects.cs
@@ -1,5 +1,9 @@
namespace ProjectMotorBoat.CollectionGenericObjects;
+///
+/// Параметризованный набор объектов
+///
+/// Параметр: ограничение - ссылочный тип
public class ListGenericObjects : ICollectionGenericObjects
where T : class
{
@@ -21,7 +25,7 @@ public class ListGenericObjects : ICollectionGenericObjects
public T? Get(int position)
{
- if (_collection[position] != null && position < Count - 1)
+ if (position < Count && _collection[position] != null)
{
return _collection[position];
}
@@ -30,52 +34,38 @@ public class ListGenericObjects : ICollectionGenericObjects
public int Insert(T obj)
{
- for (int i = 0; i < Count; i++)
+ if (Count < _maxCount)
{
- if (_collection[i] == null)
- {
- _collection[i] = obj;
- return i;
- }
+ _collection.Add(obj);
+ return _collection.Count;
}
return -1;
}
public int Insert(T obj, int position)
{
- if (_collection[position] != null)
+ if (Count < _maxCount)
{
- for (int i = position; i < Count; i++)
+ if (_collection[position] == null)
{
- if (_collection[i] == null)
- {
- _collection[position] = obj;
- return position;
- }
- }
-
- for (int i = position; i > 0; i--)
- {
- if (_collection[i] == null)
- {
- _collection[position] = obj;
- return position;
- }
+ _collection.Insert(position, obj);
+ return position;
}
}
-
return -1;
}
public T? Remove(int position)
{
- if (_collection[position] != null)
+ if (Count < _maxCount)
{
- T? obj = _collection[position];
- _collection[position] = null;
- return obj;
+ if (_collection[position] != null)
+ {
+ T? obj = _collection[position];
+ _collection.RemoveAt(position);
+ return obj;
+ }
}
-
return null;
}
}
diff --git a/ProjectMotorBoat/ProjectMotorBoat/CollectionGenericObjects/StorageCollection.cs b/ProjectMotorBoat/ProjectMotorBoat/CollectionGenericObjects/StorageCollection.cs
index 1422a9d..eabc5d7 100644
--- a/ProjectMotorBoat/ProjectMotorBoat/CollectionGenericObjects/StorageCollection.cs
+++ b/ProjectMotorBoat/ProjectMotorBoat/CollectionGenericObjects/StorageCollection.cs
@@ -1,4 +1,8 @@
-namespace ProjectMotorBoat.CollectionGenericObjects;
+using ProjectMotorBoat.Drawings;
+using ProjectMotorBoat.MovementStrategy;
+using System.Windows.Forms;
+
+namespace ProjectMotorBoat.CollectionGenericObjects;
///
/// Класс-хранилище коллекций
@@ -29,11 +33,27 @@ public class StorageCollection
/// Добавление коллекции в хранилище
///
/// Название коллекции
- /// тип коллекции
+ /// Тип коллекции
public void AddCollection(string name, CollectionType collectionType)
{
- // TODO проверка, что name не пустой и нет в словаре записи с таким ключом
- // TODO Прописать логику для добавления
+ // проверка, что name не пустой и нет в словаре записи с таким ключом ✔
+ // Прописать логику для добавления ✔
+ if (name != null && !_storages.ContainsKey(name))
+ {
+ switch (collectionType)
+ {
+ case CollectionType.List:
+ {
+ _storages[name] = new ListGenericObjects();
+ break;
+ }
+ case CollectionType.Massive:
+ {
+ _storages[name] = new MassiveGenericObjects();
+ break;
+ }
+ }
+ }
}
///
@@ -42,7 +62,8 @@ public class StorageCollection
/// Название коллекции
public void DelCollection(string name)
{
- // TODO Прописать логику для удаления коллекции
+ // Прописать логику для удаления коллекции ✔
+ _storages.Remove(name);
}
///
@@ -54,7 +75,10 @@ public class StorageCollection
{
get
{
- // TODO Продумать логику получения объекта
+ // Продумать логику получения объекта ✔
+ if (_storages.ContainsKey(name))
+ return _storages[name];
+
return null;
}
}
diff --git a/ProjectMotorBoat/ProjectMotorBoat/FormBoatCollection.cs b/ProjectMotorBoat/ProjectMotorBoat/FormBoatCollection.cs
index df11543..96b3d04 100644
--- a/ProjectMotorBoat/ProjectMotorBoat/FormBoatCollection.cs
+++ b/ProjectMotorBoat/ProjectMotorBoat/FormBoatCollection.cs
@@ -222,10 +222,18 @@ public partial class FormBoatCollection : Form
///
private void ButtonCollectionDel_Click(object sender, EventArgs e)
{
- // TODO прописать логику удаления элемента из коллекции
- // нужно убедиться, что есть выбранная коллекция
- // спросить у пользователя через MessageBox, что он подтверждает, что хочет удалить запись
- // удалить и обновить ListBox
+ // прописать логику удаления элемента из коллекции ✔
+ // нужно убедиться, что есть выбранная коллекция ✔
+ // спросить у пользователя через MessageBox, что он подтверждает, что хочет удалить запись ✔
+ // удалить и обновить ListBox ✔
+ if (MessageBox.Show("Удалить коллекцию?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
+ {
+ return;
+ }
+ if (_storageCollection.Keys.Contains(listBoxCollection.SelectedItem.ToString() ?? string.Empty))
+ _storageCollection.DelCollection(listBoxCollection.SelectedItem.ToString() ?? string.Empty);
+
+ RerfreshListBoxItems();
}
///