69 lines
2.2 KiB
C#
Raw Normal View History

2023-11-18 12:13:53 +04:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using ProjectAirbus.Drawnings;
using ProjectAirbus.MovementStrategy;
namespace ProjectAirbus.Generics
{
// Класс для хранения коллекции
internal class AirbusGenericStorage
{
//Словарь (хранилище)
readonly Dictionary<string, AirbusGenericCollection<DrawningAirbus, DrawningObjectAirbus>> _airbusStorages;
//Возвращение списка названий наборов
public List<string> Keys => _airbusStorages.Keys.ToList();
//Ширина окна отрисовки
private readonly int _pictureWidth;
//Высота окна отрисовки
private readonly int _pictureHeight;
public AirbusGenericStorage(int pictureWidth, int pictureHeight)
{
_airbusStorages = new Dictionary<string, AirbusGenericCollection<DrawningAirbus, DrawningObjectAirbus>>();
_pictureWidth = pictureWidth;
_pictureHeight = pictureHeight;
}
// Добавление набора
public void AddSet(string name)
{
// проверка, что нет набора с таким именем
foreach (string nameStorage in Keys)
{
if (nameStorage == name)
{
return;
}
}
_airbusStorages.Add(name, new AirbusGenericCollection<DrawningAirbus, DrawningObjectAirbus>(_pictureWidth, _pictureHeight));
}
// Удаление набора
public void DelSet(string name)
{
if ( _airbusStorages.ContainsKey(name))
{
_airbusStorages.Remove(name);
}
}
// Доступ к набору
public AirbusGenericCollection<DrawningAirbus, DrawningObjectAirbus>? this[string ind]
{
get
{
if (_airbusStorages.ContainsKey(ind))
{
return _airbusStorages[ind];
}
return null;
}
}
}
}