20231210
This commit is contained in:
parent
73e6e4d3b1
commit
ec16d085fa
@ -2,25 +2,36 @@
|
|||||||
|
|
||||||
namespace anbs_cp.Classes;
|
namespace anbs_cp.Classes;
|
||||||
|
|
||||||
|
/*
|
||||||
|
История версий
|
||||||
|
|
||||||
|
Обновлено 2023.12.10
|
||||||
|
* Заменены классы Action* на соответствующие интерфейсы
|
||||||
|
* Класс ActionState теперь наследует интерфейс IActionState, позволяющий добавлять состояния (ошибки, предупреждения и информацию)
|
||||||
|
из разных классов ActionState, т.е. например, данные из ActionState<bool> (кроме значения!) можно перенести в ActionState<int>.
|
||||||
|
|
||||||
|
Обновлено 2023.11.1
|
||||||
|
* Добавлен возвращаемый результат
|
||||||
|
|
||||||
|
Обновлено 2023.01.121.1:
|
||||||
|
* Заменены интерфейсы IAction* на соответствующие классы
|
||||||
|
*/
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Состояние действия
|
/// Класс, хранящий в себе состояния действия
|
||||||
///
|
|
||||||
/// Обновлено 2023.11.1
|
|
||||||
/// * Добавлен возвращаемый результат
|
|
||||||
///
|
|
||||||
/// Обновлено 2023.01.121.1:
|
|
||||||
/// * Заменены интерфейсы IAction* на соответствующие классы
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ActionState<T>
|
/// <typeparam name="T">Тип значения - результата действия</typeparam>
|
||||||
|
public class ActionState<T>: IActionState
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конструктор по умолчанию
|
/// Конструктор по умолчанию
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
// ReSharper disable once MemberCanBeProtected.Global
|
||||||
public ActionState ()
|
public ActionState ()
|
||||||
{
|
{
|
||||||
Info = new();
|
Info = [];
|
||||||
Warnings = new();
|
Warnings = [];
|
||||||
Errors = new();
|
Errors = [];
|
||||||
Value = default;
|
Value = default;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,26 +41,26 @@ public class ActionState<T>
|
|||||||
/// <param name="defaultValue">Начальное значение <see cref="Value"/></param>
|
/// <param name="defaultValue">Начальное значение <see cref="Value"/></param>
|
||||||
public ActionState (T defaultValue)
|
public ActionState (T defaultValue)
|
||||||
{
|
{
|
||||||
Info = new();
|
Info = [];
|
||||||
Warnings = new();
|
Warnings = [];
|
||||||
Errors = new();
|
Errors = [];
|
||||||
Value = defaultValue;
|
Value = defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Список информации
|
/// Список информации
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<ActionInfo> Info { get; }
|
public List<IActionInfo> Info { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Список предупреждений
|
/// Список предупреждений
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<ActionWarning> Warnings { get; }
|
public List<IActionWarning> Warnings { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Список ошибок
|
/// Список ошибок
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<ActionError> Errors { get; }
|
public List<IActionError> Errors { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Значение
|
/// Значение
|
||||||
@ -104,13 +115,13 @@ public class ActionState<T>
|
|||||||
/// <param name="error">Ошибка</param>
|
/// <param name="error">Ошибка</param>
|
||||||
// ReSharper disable once MemberCanBeMadeStatic.Global
|
// ReSharper disable once MemberCanBeMadeStatic.Global
|
||||||
// ReSharper disable once FunctionRecursiveOnAllPaths
|
// ReSharper disable once FunctionRecursiveOnAllPaths
|
||||||
public void AddError (ActionError error) => Errors.Add(error);
|
public void AddError (IActionError error) => Errors.Add(error);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавляет ошибки в список
|
/// Добавляет ошибки в список
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="errors">Список ошибок</param>
|
/// <param name="errors">Список ошибок</param>
|
||||||
public void AddErrors(IEnumerable<ActionError> errors) => Errors.AddRange(errors);
|
public void AddErrors (IEnumerable<IActionError> errors) => Errors.AddRange(errors);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление ошибки
|
/// Добавление ошибки
|
||||||
@ -160,13 +171,13 @@ public class ActionState<T>
|
|||||||
/// Добавление предупреждения
|
/// Добавление предупреждения
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="warning">Предупреждение</param>
|
/// <param name="warning">Предупреждение</param>
|
||||||
public void AddWarning (ActionWarning warning) => Warnings.Add(warning);
|
public void AddWarning (IActionWarning warning) => Warnings.Add(warning);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление предупреждений
|
/// Добавление предупреждений
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="warnings">Список предупреждений</param>
|
/// <param name="warnings">Список предупреждений</param>
|
||||||
public void AddWarnings(IEnumerable<ActionWarning> warnings) => Warnings.AddRange(warnings);
|
public void AddWarnings (IEnumerable<IActionWarning> warnings) => Warnings.AddRange(warnings);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление предупреждение
|
/// Добавление предупреждение
|
||||||
@ -188,13 +199,13 @@ public class ActionState<T>
|
|||||||
/// Добавление информации
|
/// Добавление информации
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="info">Информация</param>
|
/// <param name="info">Информация</param>
|
||||||
public void AddInfo (ActionInfo info) => Info.Add(info);
|
public void AddInfo (IActionInfo info) => Info.Add(info);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление информации
|
/// Добавление информации
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="infos">Список информации</param>
|
/// <param name="infos">Список информации</param>
|
||||||
public void AddInfos (IEnumerable<ActionInfo> infos) => Info.AddRange(infos);
|
public void AddInfos (IEnumerable<IActionInfo> infos) => Info.AddRange(infos);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление информации
|
/// Добавление информации
|
||||||
@ -323,11 +334,11 @@ public class ActionState<T>
|
|||||||
#region Добавление другого состояния
|
#region Добавление другого состояния
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавляет другое состояние (например, результат другого действия, который возвращает <see cref="ActionState"/>).
|
/// Добавляет другое состояние (например, результат другого действия, который возвращает <see cref="ActionState"/>).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T">Тип параметра</typeparam>
|
/// <typeparam name="T">Тип параметра</typeparam>
|
||||||
/// <param name="state">Запись состояния</param>
|
/// <param name="state">Запись состояния</param>
|
||||||
public void AddState (ActionState<T> state)
|
public void AddState (IActionState state)
|
||||||
{
|
{
|
||||||
AddErrors(state.Errors);
|
AddErrors(state.Errors);
|
||||||
AddWarnings(state.Warnings);
|
AddWarnings(state.Warnings);
|
||||||
|
31
anbs_cp/Interfaces/IActionState.cs
Normal file
31
anbs_cp/Interfaces/IActionState.cs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
using anbs_cp.Classes;
|
||||||
|
|
||||||
|
namespace anbs_cp.Interfaces;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Интерфейс класса, хранящего в себе состояния действия
|
||||||
|
/// </summary>
|
||||||
|
public interface IActionState
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Список информации
|
||||||
|
/// </summary>
|
||||||
|
List<IActionInfo> Info { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Список предупреждений
|
||||||
|
/// </summary>
|
||||||
|
List<IActionWarning> Warnings { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Список ошибок
|
||||||
|
/// </summary>
|
||||||
|
List<IActionError> Errors { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Добавляет другое состояние (например, результат другого действия, который возвращает <see cref="ActionState{T}"/>).
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T">Тип параметра</typeparam>
|
||||||
|
/// <param name="state">Запись состояния</param>
|
||||||
|
void AddState (IActionState state);
|
||||||
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Version>2023.1125.0</Version>
|
<Version>2023.1210.0</Version>
|
||||||
<Authors>Александр Бабаев</Authors>
|
<Authors>Александр Бабаев</Authors>
|
||||||
<Product>Набор компонентов ANB Software</Product>
|
<Product>Набор компонентов ANB Software</Product>
|
||||||
<Description>Библиотека полезных методов языка C#</Description>
|
<Description>Библиотека полезных методов языка C#</Description>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user