diff --git a/anbs_cp/Classes/ActionState.cs b/anbs_cp/Classes/ActionState.cs
index ab433d0..053025b 100644
--- a/anbs_cp/Classes/ActionState.cs
+++ b/anbs_cp/Classes/ActionState.cs
@@ -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;
*/
///
-public class ActionState: IActionState
+public class ActionState: ISerializable
{
///
/// Конструктор по умолчанию
@@ -54,17 +56,17 @@ public class ActionState: IActionState
///
/// Список информации
///
- public List Info { get; }
+ public List Info { get; }
///
/// Список предупреждений
///
- public List Warnings { get; }
+ public List Warnings { get; }
///
/// Список ошибок
///
- public List Errors { get; }
+ public List Errors { get; }
///
/// Значение
@@ -119,13 +121,13 @@ public class ActionState: IActionState
/// Ошибка
// 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);
///
/// Добавляет ошибки в список
///
/// Список ошибок
- public void AddErrors (IEnumerable errors) => Errors.AddRange(errors);
+ public void AddErrors (IEnumerable errors) => Errors.AddRange(errors);
///
/// Добавление ошибки
@@ -175,13 +177,13 @@ public class ActionState: IActionState
/// Добавление предупреждения
///
/// Предупреждение
- public void AddWarning (IActionStateMessage warning) => Warnings.Add(warning);
+ public void AddWarning (ActionStateMessage warning) => Warnings.Add(warning);
///
/// Добавление предупреждений
///
/// Список предупреждений
- public void AddWarnings (IEnumerable warnings) => Warnings.AddRange(warnings);
+ public void AddWarnings (IEnumerable warnings) => Warnings.AddRange(warnings);
///
/// Добавление предупреждение
@@ -203,13 +205,13 @@ public class ActionState: IActionState
/// Добавление информации
///
/// Информация
- public void AddInfo (IActionStateMessage info) => Info.Add(info);
+ public void AddInfo (ActionStateMessage info) => Info.Add(info);
///
/// Добавление информации
///
/// Список информации
- public void AddInfos (IEnumerable infos) => Info.AddRange(infos);
+ public void AddInfos (IEnumerable infos) => Info.AddRange(infos);
///
/// Добавление информации
@@ -238,7 +240,7 @@ public class ActionState: IActionState
public string PrintMessage (EActionStatePrintArea area, string formatList, string formatItem)
{
// Создаю список
- List list = [];
+ List list = [];
// Выбираю списки по областям
switch (area)
@@ -340,7 +342,7 @@ public class ActionState: IActionState
///
/// Тип параметра
/// Запись состояния
- public void AddState (IActionState state)
+ public void AddState (ActionState state)
{
AddErrors(state.Errors);
AddWarnings(state.Warnings);
@@ -357,17 +359,17 @@ public class ActionState: 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());
diff --git a/anbs_cp/Classes/ActionStateMessage.cs b/anbs_cp/Classes/ActionStateMessage.cs
index 220aefd..f076b84 100644
--- a/anbs_cp/Classes/ActionStateMessage.cs
+++ b/anbs_cp/Classes/ActionStateMessage.cs
@@ -1,18 +1,30 @@
-using anbs_cp.Interfaces;
+// ReSharper disable MemberCanBeInternal
+// ReSharper disable MemberCanBePrivate.Global
+using anbs_cp.Interfaces;
namespace anbs_cp.Classes;
-///
-public sealed class ActionStateMessage: IActionStateMessage
+///
+/// Класс сообщения состояния
+///
+public sealed class ActionStateMessage: ISerializable
{
- ///
+ #region Свойства
+ ///
+ /// Критичность сообщения
+ ///
public bool IsCritical { get; set; }
- ///
+ ///
+ /// Объект сообщения
+ ///
public object Object { get; set; }
- ///
+ ///
+ /// Текст сообщения
+ ///
public string Message { get; set; }
+ #endregion
#region Конструкторы
///
@@ -52,6 +64,15 @@ public sealed class ActionStateMessage: IActionStateMessage
}
#endregion
+ #region Методы
+ ///
+ /// Вывод сообщения
+ ///
+ /// Строка-форматирование (например, «[{0}] - {1}»)
+ /// Отформатированную строка
+ public string PrintMessage (string format) => string.Format(format, Object, Message);
+ #endregion
+
#region Реализация интерфейса ISerializable
///
public string Serialize () => new SysTextSerializer().Serialize(this);
diff --git a/anbs_cp/Classes/ActionStateSerialized.cs b/anbs_cp/Classes/ActionStateSerialized.cs
index 6dafb7c..401fa85 100644
--- a/anbs_cp/Classes/ActionStateSerialized.cs
+++ b/anbs_cp/Classes/ActionStateSerialized.cs
@@ -12,7 +12,7 @@ namespace anbs_cp.Classes;
public sealed class ActionStateSerialized: ActionState where T : ISerializable, new()
{
///
- /// Добавляет другое состояние (например, результат другого действия, который возвращает ).
+ /// Добавляет другое состояние (например, результат другого действия, который возвращает ).
///
/// Запись состояния
public void AddState (ActionStateSerialized state)
@@ -32,17 +32,17 @@ public sealed class ActionStateSerialized: ActionState 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());
diff --git a/anbs_cp/Interfaces/IActionState.cs b/anbs_cp/Interfaces/IActionState.cs
deleted file mode 100644
index 2f77a36..0000000
--- a/anbs_cp/Interfaces/IActionState.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using anbs_cp.Classes;
-
-namespace anbs_cp.Interfaces;
-
-///
-/// Класс, хранящий в себе состояния действия
-///
-public interface IActionState: ISerializable
-{
- ///
- /// Список информации
- ///
- List Info { get; }
-
- ///
- /// Список предупреждений
- ///
- List Warnings { get; }
-
- ///
- /// Список ошибок
- ///
- List Errors { get; }
-
- ///
- /// Добавляет другое состояние (например, результат другого действия, который возвращает ).
- ///
- /// Запись состояния
- void AddState (IActionState state);
-}
\ No newline at end of file
diff --git a/anbs_cp/Interfaces/IActionStateMessage.cs b/anbs_cp/Interfaces/IActionStateMessage.cs
deleted file mode 100644
index 65e00e4..0000000
--- a/anbs_cp/Interfaces/IActionStateMessage.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-namespace anbs_cp.Interfaces;
-
-///
-/// Интерфейс сообщения состояния
-///
-public interface IActionStateMessage: ISerializable
-{
- ///
- /// Критичность сообщения
- ///
- public bool IsCritical { get; set; }
-
- ///
- /// Объект сообщения
- ///
- public object Object { get; set; }
-
- ///
- /// Текст сообщения
- ///
- public string Message { get; set; }
-
- ///
- /// Функция вывода сообщения
- ///
- /// Строка-форматирование (например, «[{0}] - {1}»)
- /// Отформатированную строка
- public string PrintMessage (string format) => string.Format (format, Object, Message);
-}
\ No newline at end of file
diff --git a/anbs_cp/anbs_cp.csproj b/anbs_cp/anbs_cp.csproj
index 3f9ecca..8a8c5c2 100644
--- a/anbs_cp/anbs_cp.csproj
+++ b/anbs_cp/anbs_cp.csproj
@@ -2,7 +2,7 @@
net8.0
- 2024.3.26.1
+ 2024.3.26.2
Александр Бабаев
Набор компонентов ANB Software
Библиотека полезных методов языка C#