diff --git a/AirplaneWithRadar/ProjectAirplaneWithRadar/Drawnings/DrawingAirplaneWithRadar.cs b/AirplaneWithRadar/ProjectAirplaneWithRadar/Drawnings/DrawingAirplaneWithRadar.cs
index 8ba2e38..a4188e6 100644
--- a/AirplaneWithRadar/ProjectAirplaneWithRadar/Drawnings/DrawingAirplaneWithRadar.cs
+++ b/AirplaneWithRadar/ProjectAirplaneWithRadar/Drawnings/DrawingAirplaneWithRadar.cs
@@ -6,7 +6,7 @@ namespace ProjectAirplaneWithRadar.Drawnings
/// Класс, отвечающий за прорисовку и перемещение объекта-сущности
///
public class DrawingAirplaneWithRadar : DrawningAirplane
- {
+ {
///
/// Инициализация свойств
///
@@ -21,6 +21,16 @@ namespace ProjectAirplaneWithRadar.Drawnings
EntityAirplane = new EntityAirplaneWithRadar(speed, weight, bodyColor, additionalColor, wheels, radar);
}
+ ///
+ /// Конструктор для метода создания объекта из строки (ExtentionDrawningAirplane)
+ ///
+ ///
+ public DrawingAirplaneWithRadar(EntityAirplane? airplane) : base(airplane)
+ {
+ if (airplane != null)
+ EntityAirplane = airplane;
+ }
+
///
/// Прорисовка объекта
///
diff --git a/AirplaneWithRadar/ProjectAirplaneWithRadar/Drawnings/DrawningAirplane.cs b/AirplaneWithRadar/ProjectAirplaneWithRadar/Drawnings/DrawningAirplane.cs
index 63981d4..c2e33b6 100644
--- a/AirplaneWithRadar/ProjectAirplaneWithRadar/Drawnings/DrawningAirplane.cs
+++ b/AirplaneWithRadar/ProjectAirplaneWithRadar/Drawnings/DrawningAirplane.cs
@@ -83,6 +83,15 @@ namespace ProjectAirplaneWithRadar.Drawnings
EntityAirplane = new EntityAirplane(speed, weight, bodyColor);
}
+ ///
+ /// Конструктор для метода создания объекта из строки (ExtentionDrawningAirplane)
+ ///
+ ///
+ public DrawningAirplane(EntityAirplane? airplane) : this()
+ {
+ EntityAirplane = airplane;
+ }
+
///
/// Конструктор для наследников
///
diff --git a/AirplaneWithRadar/ProjectAirplaneWithRadar/Drawnings/ExtentionDrawningAirplane.cs b/AirplaneWithRadar/ProjectAirplaneWithRadar/Drawnings/ExtentionDrawningAirplane.cs
new file mode 100644
index 0000000..b23ed4b
--- /dev/null
+++ b/AirplaneWithRadar/ProjectAirplaneWithRadar/Drawnings/ExtentionDrawningAirplane.cs
@@ -0,0 +1,55 @@
+using ProjectAirplaneWithRadar.Entities;
+
+namespace ProjectAirplaneWithRadar.Drawnings
+{
+ public static class ExtentionDrawningAirplane
+ {
+ ///
+ /// Разделитель для записи информации по объекту в файл
+ ///
+ private static readonly string _separatorForObject = ":";
+
+ ///
+ /// Создание объекта из строки
+ ///
+ /// Строка с данными для создания объекта
+ /// Объект
+ public static DrawningAirplane? CreateDrawningAirplane(this string info)
+ {
+ string[] strs = info.Split(_separatorForObject);
+ EntityAirplane? airplane = EntityAirplaneWithRadar.CreateEntityAirplaneWithRadar(strs);
+
+ if (airplane != null)
+ {
+ return new DrawingAirplaneWithRadar(airplane);
+ }
+
+ airplane = EntityAirplane.CreateEntityAirplane(strs);
+
+ if (airplane != null)
+ {
+ return new DrawningAirplane(airplane);
+ }
+
+ return null;
+ }
+
+ ///
+ /// Получение данных для сохранения в файл
+ ///
+ /// Сохраняемый объект
+ /// Строка с данными по объекту
+ public static string GetDataForSave(this DrawningAirplane drawningAirplane)
+ {
+ string[]? array = drawningAirplane?.EntityAirplane?.GetStringRepresentation();
+
+ if (array == null)
+ {
+ return string.Empty;
+ }
+
+ return string.Join(_separatorForObject, array);
+ }
+
+ }
+}