using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProjectBus.CollectionGenericObject;
///
/// Класс-хранилище коллекций
///
///
public class StorageCollection
where T : class
{///
/// Словарь (хранилище) с коллекциями
///
readonly Dictionary> _storages;
///
/// Возвращение списка названий коллекций
///
public List Keys => _storages.Keys.ToList();
///
/// Конструктор
///
public StorageCollection()
{
_storages = new Dictionary>();
}
///
/// Добавление коллекции в хранилище
///
/// Название коллекции
/// тип коллекции
public void AddCollection(string name, CollectionType collectionType)
{
if (name == null || _storages.ContainsKey(name)) { return; }
switch (collectionType)
{
case CollectionType.None:
return;
case CollectionType.Massive:
_storages.Add(name, new MassiveGenericObjects { });
return;
case CollectionType.List:
_storages.Add(name, new ListGenericObjects { });
return;
}
}
///
/// Удаление коллекции
///
/// Название коллекции
public void DelCollection(string name)
{
if (name == null || !_storages.ContainsKey(name)) { return; }
_storages.Remove(name);
}
///
/// Доступ к коллекции
///
/// Название коллекции
///
public ICollectionGenericObjects? this[string name]
{
get
{
if (name == null || !_storages.ContainsKey(name)) { return null; }
return _storages[name];
}
}
}