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