80 lines
2.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace Battleship.CollectionGenericObjects;
/// <summary>
/// Класс-хранилище коллекций
/// </summary>
/// <typeparam name="T"></typeparam>
public class StorageCollection<T>
where T : class
{
/// <summary>
/// Словарь (хранилище) с коллекциями
/// </summary>
private Dictionary<string, ICollectionGenericObjects<T>> _storages;
/// <summary>
/// Возвращение списка названий коллекции
/// </summary>
public List<string> Keys => _storages.Keys.ToList();
/// <summary>
/// Конструктор
/// </summary>
public StorageCollection()
{
_storages = new Dictionary<string, ICollectionGenericObjects<T>>();
}
/// <summary>
/// Добавление коллекции в хранилище
/// </summary>
/// <param name="name">Название коллекции</param>
/// <param name="collectionType">Тип коллекции</param>
public void AddCollection(string name, CollectionType collectionType)
{
// TODO проверка, что name не пустой и нет в словаре записи с таким ключом
if (_storages.ContainsKey(name))
return;
// TODO Прописать логику для добавления
if (collectionType == CollectionType.List)
{
_storages.Add(name, new ListGenericObjects<T>());
}
if (collectionType == CollectionType.Massive)
{
_storages.Add(name, new MassiveGenericObjects<T>());
}
}
/// <summary>
/// Удаление коллекции
/// </summary>
/// <param name="name"></param>
public void DelCollection(string name)
{
// TODO Прописать логику для удаления коллекции
if (!_storages.ContainsKey(name))
return;
_storages.Remove(name);
}
/// <summary>
/// Удаление коллекции
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public ICollectionGenericObjects<T> this[string name]
{
get
{
// TODO Продумать логику получения объекта
if (_storages.ContainsKey((string)name))
{
return _storages[name];
}
return null;
}
}
}