20230326-2
This commit is contained in:
parent
061408763d
commit
9171e6d5e3
@ -1,5 +1,6 @@
|
|||||||
// ReSharper disable MemberCanBePrivate.Global
|
// ReSharper disable MemberCanBePrivate.Global
|
||||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||||
|
// ReSharper disable MemberCanBeProtected.Global
|
||||||
|
|
||||||
using anbs_cp.Enums;
|
using anbs_cp.Enums;
|
||||||
using anbs_cp.Interfaces;
|
using anbs_cp.Interfaces;
|
||||||
@ -10,7 +11,8 @@ namespace anbs_cp.Classes;
|
|||||||
История версий
|
История версий
|
||||||
|
|
||||||
Обновлено 2024.03.26
|
Обновлено 2024.03.26
|
||||||
* Все интерфейсы объеденины в один IActionStateMessage
|
* Все интерфейсы объеденины в один класс ActionStateMessage
|
||||||
|
* Интерфейс IActionState удалён
|
||||||
|
|
||||||
Обновлено 2023.12.10
|
Обновлено 2023.12.10
|
||||||
* Заменены классы Action* на соответствующие интерфейсы
|
* Заменены классы Action* на соответствующие интерфейсы
|
||||||
@ -25,7 +27,7 @@ namespace anbs_cp.Classes;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public class ActionState<T>: IActionState
|
public class ActionState<T>: ISerializable
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конструктор по умолчанию
|
/// Конструктор по умолчанию
|
||||||
@ -54,17 +56,17 @@ public class ActionState<T>: IActionState
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Список информации
|
/// Список информации
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<IActionStateMessage> Info { get; }
|
public List<ActionStateMessage> Info { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Список предупреждений
|
/// Список предупреждений
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<IActionStateMessage> Warnings { get; }
|
public List<ActionStateMessage> Warnings { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Список ошибок
|
/// Список ошибок
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<IActionStateMessage> Errors { get; }
|
public List<ActionStateMessage> Errors { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Значение
|
/// Значение
|
||||||
@ -119,13 +121,13 @@ public class ActionState<T>: IActionState
|
|||||||
/// <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 (IActionStateMessage error) => Errors.Add(error);
|
public void AddError (ActionStateMessage error) => Errors.Add(error);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавляет ошибки в список
|
/// Добавляет ошибки в список
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="errors">Список ошибок</param>
|
/// <param name="errors">Список ошибок</param>
|
||||||
public void AddErrors (IEnumerable<IActionStateMessage> errors) => Errors.AddRange(errors);
|
public void AddErrors (IEnumerable<ActionStateMessage> errors) => Errors.AddRange(errors);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление ошибки
|
/// Добавление ошибки
|
||||||
@ -175,13 +177,13 @@ public class ActionState<T>: IActionState
|
|||||||
/// Добавление предупреждения
|
/// Добавление предупреждения
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="warning">Предупреждение</param>
|
/// <param name="warning">Предупреждение</param>
|
||||||
public void AddWarning (IActionStateMessage warning) => Warnings.Add(warning);
|
public void AddWarning (ActionStateMessage warning) => Warnings.Add(warning);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление предупреждений
|
/// Добавление предупреждений
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="warnings">Список предупреждений</param>
|
/// <param name="warnings">Список предупреждений</param>
|
||||||
public void AddWarnings (IEnumerable<IActionStateMessage> warnings) => Warnings.AddRange(warnings);
|
public void AddWarnings (IEnumerable<ActionStateMessage> warnings) => Warnings.AddRange(warnings);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление предупреждение
|
/// Добавление предупреждение
|
||||||
@ -203,13 +205,13 @@ public class ActionState<T>: IActionState
|
|||||||
/// Добавление информации
|
/// Добавление информации
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="info">Информация</param>
|
/// <param name="info">Информация</param>
|
||||||
public void AddInfo (IActionStateMessage info) => Info.Add(info);
|
public void AddInfo (ActionStateMessage info) => Info.Add(info);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление информации
|
/// Добавление информации
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="infos">Список информации</param>
|
/// <param name="infos">Список информации</param>
|
||||||
public void AddInfos (IEnumerable<IActionStateMessage> infos) => Info.AddRange(infos);
|
public void AddInfos (IEnumerable<ActionStateMessage> infos) => Info.AddRange(infos);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление информации
|
/// Добавление информации
|
||||||
@ -238,7 +240,7 @@ public class ActionState<T>: IActionState
|
|||||||
public string PrintMessage (EActionStatePrintArea area, string formatList, string formatItem)
|
public string PrintMessage (EActionStatePrintArea area, string formatList, string formatItem)
|
||||||
{
|
{
|
||||||
// Создаю список
|
// Создаю список
|
||||||
List<IActionStateMessage> list = [];
|
List<ActionStateMessage> list = [];
|
||||||
|
|
||||||
// Выбираю списки по областям
|
// Выбираю списки по областям
|
||||||
switch (area)
|
switch (area)
|
||||||
@ -340,7 +342,7 @@ public class ActionState<T>: IActionState
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T">Тип параметра</typeparam>
|
/// <typeparam name="T">Тип параметра</typeparam>
|
||||||
/// <param name="state">Запись состояния</param>
|
/// <param name="state">Запись состояния</param>
|
||||||
public void AddState (IActionState state)
|
public void AddState (ActionState<T> state)
|
||||||
{
|
{
|
||||||
AddErrors(state.Errors);
|
AddErrors(state.Errors);
|
||||||
AddWarnings(state.Warnings);
|
AddWarnings(state.Warnings);
|
||||||
@ -357,17 +359,17 @@ public class ActionState<T>: IActionState
|
|||||||
ActionStateSerializable serializableModel = new();
|
ActionStateSerializable serializableModel = new();
|
||||||
|
|
||||||
// Для каждого информационного сообщения
|
// Для каждого информационного сообщения
|
||||||
foreach (IActionStateMessage info in Info)
|
foreach (ActionStateMessage info in Info)
|
||||||
// - добавляю в модель
|
// - добавляю в модель
|
||||||
serializableModel.Info.Add(info.Serialize());
|
serializableModel.Info.Add(info.Serialize());
|
||||||
|
|
||||||
// Для каждого предупреждения
|
// Для каждого предупреждения
|
||||||
foreach (IActionStateMessage warning in Warnings)
|
foreach (ActionStateMessage warning in Warnings)
|
||||||
// - добавляю в модель
|
// - добавляю в модель
|
||||||
serializableModel.Info.Add(warning.Serialize());
|
serializableModel.Info.Add(warning.Serialize());
|
||||||
|
|
||||||
// Для каждой ошибки
|
// Для каждой ошибки
|
||||||
foreach (IActionStateMessage error in Errors)
|
foreach (ActionStateMessage error in Errors)
|
||||||
// - добавляю в модель
|
// - добавляю в модель
|
||||||
serializableModel.Info.Add(error.Serialize());
|
serializableModel.Info.Add(error.Serialize());
|
||||||
|
|
||||||
|
@ -1,18 +1,30 @@
|
|||||||
using anbs_cp.Interfaces;
|
// ReSharper disable MemberCanBeInternal
|
||||||
|
// ReSharper disable MemberCanBePrivate.Global
|
||||||
|
using anbs_cp.Interfaces;
|
||||||
|
|
||||||
namespace anbs_cp.Classes;
|
namespace anbs_cp.Classes;
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <summary>
|
||||||
public sealed class ActionStateMessage: IActionStateMessage
|
/// Класс сообщения состояния
|
||||||
|
/// </summary>
|
||||||
|
public sealed class ActionStateMessage: ISerializable
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
#region Свойства
|
||||||
|
/// <summary>
|
||||||
|
/// Критичность сообщения
|
||||||
|
/// </summary>
|
||||||
public bool IsCritical { get; set; }
|
public bool IsCritical { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <summary>
|
||||||
|
/// Объект сообщения
|
||||||
|
/// </summary>
|
||||||
public object Object { get; set; }
|
public object Object { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <summary>
|
||||||
|
/// Текст сообщения
|
||||||
|
/// </summary>
|
||||||
public string Message { get; set; }
|
public string Message { get; set; }
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Конструкторы
|
#region Конструкторы
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -52,6 +64,15 @@ public sealed class ActionStateMessage: IActionStateMessage
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Методы
|
||||||
|
/// <summary>
|
||||||
|
/// Вывод сообщения
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="format">Строка-форматирование (например, «[{0}] - {1}»)</param>
|
||||||
|
/// <returns>Отформатированную строка</returns>
|
||||||
|
public string PrintMessage (string format) => string.Format(format, Object, Message);
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Реализация интерфейса ISerializable
|
#region Реализация интерфейса ISerializable
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public string Serialize () => new SysTextSerializer().Serialize(this);
|
public string Serialize () => new SysTextSerializer().Serialize(this);
|
||||||
|
@ -12,7 +12,7 @@ namespace anbs_cp.Classes;
|
|||||||
public sealed class ActionStateSerialized<T>: ActionState<T> where T : ISerializable, new()
|
public sealed class ActionStateSerialized<T>: ActionState<T> where T : ISerializable, new()
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавляет другое состояние (например, результат другого действия, который возвращает <see cref="IActionState"/>).
|
/// Добавляет другое состояние (например, результат другого действия, который возвращает <see cref="ActionState"/>).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="state">Запись состояния</param>
|
/// <param name="state">Запись состояния</param>
|
||||||
public void AddState (ActionStateSerialized<T> state)
|
public void AddState (ActionStateSerialized<T> state)
|
||||||
@ -32,17 +32,17 @@ public sealed class ActionStateSerialized<T>: ActionState<T> where T : ISerializ
|
|||||||
ActionStateSerializable serializableModel = new();
|
ActionStateSerializable serializableModel = new();
|
||||||
|
|
||||||
// Для каждого информационного сообщения
|
// Для каждого информационного сообщения
|
||||||
foreach (IActionStateMessage info in Info)
|
foreach (ActionStateMessage info in Info)
|
||||||
// - добавляю в модель
|
// - добавляю в модель
|
||||||
serializableModel.Info.Add(info.Serialize());
|
serializableModel.Info.Add(info.Serialize());
|
||||||
|
|
||||||
// Для каждого предупреждения
|
// Для каждого предупреждения
|
||||||
foreach (IActionStateMessage warning in Warnings)
|
foreach (ActionStateMessage warning in Warnings)
|
||||||
// - добавляю в модель
|
// - добавляю в модель
|
||||||
serializableModel.Info.Add(warning.Serialize());
|
serializableModel.Info.Add(warning.Serialize());
|
||||||
|
|
||||||
// Для каждой ошибки
|
// Для каждой ошибки
|
||||||
foreach (IActionStateMessage error in Errors)
|
foreach (ActionStateMessage error in Errors)
|
||||||
// - добавляю в модель
|
// - добавляю в модель
|
||||||
serializableModel.Info.Add(error.Serialize());
|
serializableModel.Info.Add(error.Serialize());
|
||||||
|
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
using anbs_cp.Classes;
|
|
||||||
|
|
||||||
namespace anbs_cp.Interfaces;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Класс, хранящий в себе состояния действия
|
|
||||||
/// </summary>
|
|
||||||
public interface IActionState: ISerializable
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Список информации
|
|
||||||
/// </summary>
|
|
||||||
List<IActionStateMessage> Info { get; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Список предупреждений
|
|
||||||
/// </summary>
|
|
||||||
List<IActionStateMessage> Warnings { get; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Список ошибок
|
|
||||||
/// </summary>
|
|
||||||
List<IActionStateMessage> Errors { get; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавляет другое состояние (например, результат другого действия, который возвращает <see cref="ActionState{T}"/>).
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="state">Запись состояния</param>
|
|
||||||
void AddState (IActionState state);
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
namespace anbs_cp.Interfaces;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Интерфейс сообщения состояния
|
|
||||||
/// </summary>
|
|
||||||
public interface IActionStateMessage: ISerializable
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Критичность сообщения
|
|
||||||
/// </summary>
|
|
||||||
public bool IsCritical { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Объект сообщения
|
|
||||||
/// </summary>
|
|
||||||
public object Object { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Текст сообщения
|
|
||||||
/// </summary>
|
|
||||||
public string Message { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Функция вывода сообщения
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="format">Строка-форматирование (например, «[{0}] - {1}»)</param>
|
|
||||||
/// <returns>Отформатированную строка</returns>
|
|
||||||
public string PrintMessage (string format) => string.Format (format, Object, Message);
|
|
||||||
}
|
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Version>2024.3.26.1</Version>
|
<Version>2024.3.26.2</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