This commit is contained in:
rakhaliullov 2024-05-01 17:15:59 +03:00
parent 92f5da95a6
commit 44f7ef01e8
4 changed files with 65 additions and 62 deletions

View File

@ -1,9 +1,8 @@
using Stormtrooper.Drawnings;
using Stormtrooper.Exceptions;
using Stormtrooper.CollectionGenericObjects;
using Stormtrooper.Exceptions;
using System.CodeDom;
namespace Stormtrooper.CollectionGenericObjects;
/// <summary>
/// Параметризованный набор объектов
/// </summary>
@ -15,17 +14,20 @@ where T : class
/// Массив объектов, которые храним
/// </summary>
private T?[] _collection;
public int Count => _collection.Length;
public int MaxCount {
/// <summary>
/// Установка максимального кол-ва объектов
/// </summary>
public int MaxCount
{
get
{
return _collection.Length;
}
set
{
if (value > 0) {
if (value > 0)
{
if (_collection.Length > 0)
{
Array.Resize(ref _collection, value);
@ -47,6 +49,11 @@ where T : class
{
_collection = Array.Empty<T?>();
}
/// <summary>
/// Получение объекта по позиции
/// </summary>
/// <param name="position">Позиция (индекс)</param>
/// <returns></returns>
public T? Get(int position)
{
if (position < 0 || position >= _collection.Length)

View File

@ -54,20 +54,21 @@ where T : DrawningAircraft
/// <param name="collectionType">тип коллекции</param>
public void AddCollection(string name, CollectionType collectionType)
{
// TODO проверка, что name не пустой и нет в словаре записи с таким ключом
// TODO Прописать логику для добавления
if (!(collectionType == CollectionType.None) && !_storages.ContainsKey(name))
{
if (collectionType == CollectionType.List)
if (string.IsNullOrEmpty(name) || _storages.ContainsKey(name))
return;
switch (collectionType)
{
case CollectionType.List:
_storages.Add(name, new ListGenericObjects<T>());
}
else if (collectionType == CollectionType.Massive)
{
break;
case CollectionType.Massive:
_storages.Add(name, new MassiveGenericObjects<T>());
break;
default:
break;
}
}
}
/// <summary>
/// Удаление коллекции
/// </summary>
@ -86,11 +87,8 @@ where T : DrawningAircraft
{
get
{
// TODO Продумать логику получения объекта
if (_storages.ContainsKey(name))
{
return _storages[name];
}
if (_storages.TryGetValue(name, out ICollectionGenericObjects<T>? value))
return value;
return null;
}
}
@ -112,8 +110,6 @@ where T : DrawningAircraft
File.Delete(filename);
}
using FileStream fs = new(filename, FileMode.Create);
using StreamWriter streamWriter = new StreamWriter(fs);
streamWriter.Write(_collectionKey);

View File

@ -4,8 +4,8 @@ using Microsoft.Extensions.Configuration;
using Serilog;
using Stormtrooper;
namespace Battleship
{
namespace Stormtrooper;
internal static class Program
{
/// <summary>
@ -43,4 +43,3 @@ namespace Battleship
});
}
}
}

View File

@ -9,9 +9,10 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.1" />
<PackageReference Include="NLog.Extensions.Logging" Version="5.3.10" />
<PackageReference Include="Serilog" Version="3.1.1" />
<PackageReference Include="Serilog.AspNetCore" Version="6.0.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="8.0.0" />