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