diff --git a/anbs_cp/Classes/ActionState.cs b/anbs_cp/Classes/ActionState.cs index b980a73..6cae088 100644 --- a/anbs_cp/Classes/ActionState.cs +++ b/anbs_cp/Classes/ActionState.cs @@ -2,25 +2,36 @@ namespace anbs_cp.Classes; +/* + История версий + + Обновлено 2023.12.10 + * Заменены классы Action* на соответствующие интерфейсы + * Класс ActionState теперь наследует интерфейс IActionState, позволяющий добавлять состояния (ошибки, предупреждения и информацию) + из разных классов ActionState, т.е. например, данные из ActionState (кроме значения!) можно перенести в ActionState. + + Обновлено 2023.11.1 + * Добавлен возвращаемый результат + + Обновлено 2023.01.121.1: + * Заменены интерфейсы IAction* на соответствующие классы +*/ + /// -/// Состояние действия -/// -/// Обновлено 2023.11.1 -/// * Добавлен возвращаемый результат -/// -/// Обновлено 2023.01.121.1: -/// * Заменены интерфейсы IAction* на соответствующие классы +/// Класс, хранящий в себе состояния действия /// -public class ActionState +/// Тип значения - результата действия +public class ActionState: IActionState { /// /// Конструктор по умолчанию /// + // 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 /// Начальное значение public ActionState (T defaultValue) { - Info = new(); - Warnings = new(); - Errors = new(); + Info = []; + Warnings = []; + Errors = []; Value = defaultValue; } /// /// Список информации /// - public List Info { get; } + public List Info { get; } /// /// Список предупреждений /// - public List Warnings { get; } + public List Warnings { get; } /// /// Список ошибок /// - public List Errors { get; } + public List Errors { get; } /// /// Значение @@ -104,13 +115,13 @@ public class ActionState /// Ошибка // 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); /// /// Добавляет ошибки в список /// /// Список ошибок - public void AddErrors(IEnumerable errors) => Errors.AddRange(errors); + public void AddErrors (IEnumerable errors) => Errors.AddRange(errors); /// /// Добавление ошибки @@ -160,13 +171,13 @@ public class ActionState /// Добавление предупреждения /// /// Предупреждение - public void AddWarning (ActionWarning warning) => Warnings.Add(warning); + public void AddWarning (IActionWarning warning) => Warnings.Add(warning); /// /// Добавление предупреждений /// /// Список предупреждений - public void AddWarnings(IEnumerable warnings) => Warnings.AddRange(warnings); + public void AddWarnings (IEnumerable warnings) => Warnings.AddRange(warnings); /// /// Добавление предупреждение @@ -188,13 +199,13 @@ public class ActionState /// Добавление информации /// /// Информация - public void AddInfo (ActionInfo info) => Info.Add(info); + public void AddInfo (IActionInfo info) => Info.Add(info); /// /// Добавление информации /// /// Список информации - public void AddInfos (IEnumerable infos) => Info.AddRange(infos); + public void AddInfos (IEnumerable infos) => Info.AddRange(infos); /// /// Добавление информации @@ -323,11 +334,11 @@ public class ActionState #region Добавление другого состояния /// - /// Добавляет другое состояние (например, результат другого действия, который возвращает <see cref="ActionState"/>). + /// Добавляет другое состояние (например, результат другого действия, который возвращает ). /// /// Тип параметра /// Запись состояния - public void AddState (ActionState state) + public void AddState (IActionState state) { AddErrors(state.Errors); AddWarnings(state.Warnings); diff --git a/anbs_cp/Interfaces/IActionState.cs b/anbs_cp/Interfaces/IActionState.cs new file mode 100644 index 0000000..138d60e --- /dev/null +++ b/anbs_cp/Interfaces/IActionState.cs @@ -0,0 +1,31 @@ +using anbs_cp.Classes; + +namespace anbs_cp.Interfaces; + +/// +/// Интерфейс класса, хранящего в себе состояния действия +/// +public interface IActionState +{ + /// + /// Список информации + /// + List Info { get; } + + /// + /// Список предупреждений + /// + List Warnings { get; } + + /// + /// Список ошибок + /// + List Errors { get; } + + /// + /// Добавляет другое состояние (например, результат другого действия, который возвращает ). + /// + /// Тип параметра + /// Запись состояния + void AddState (IActionState state); +} \ No newline at end of file diff --git a/anbs_cp/anbs_cp.csproj b/anbs_cp/anbs_cp.csproj index 54f25c9..f685375 100644 --- a/anbs_cp/anbs_cp.csproj +++ b/anbs_cp/anbs_cp.csproj @@ -2,7 +2,7 @@ net8.0 - 2023.1125.0 + 2023.1210.0 Александр Бабаев Набор компонентов ANB Software Библиотека полезных методов языка C#