using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using DumpTruck.Entities; namespace DumpTruck.DrawingObjects { public static class ExtentionDrawingTruck { /// /// Создание объекта из строки /// /// Строка с данными для создания объекта /// Разделитель даннных /// Ширина /// Высота /// Объект public static DrawingTruck? CreateDrawingTruck(this string info, char separatorForObject, int width, int height) { string[] strs = info.Split(separatorForObject); if (strs.Length == 3) { return new DrawingTruck(Convert.ToInt32(strs[0]), Convert.ToInt32(strs[1]), Color.FromName(strs[2]), width, height); } if (strs.Length == 7) { return new DrawingDumpTruck(Convert.ToInt32(strs[0]), Convert.ToInt32(strs[1]), Color.FromName(strs[2]), Convert.ToBoolean(strs[3]), Convert.ToBoolean(strs[4]), Color.FromName(strs[5]), Color.FromName(strs[6]), width, height); } return null; } /// /// Получение данных для сохранения в файл /// /// Сохраняемый объект /// Разделитель даннных /// Строка с данными по объекту public static string GetDataForSave(this DrawingTruck drawingTruck, char separatorForObject) { var truck = drawingTruck.EntityTruck; if (truck == null) { return string.Empty; } var str = $"{truck.Speed}{separatorForObject}{truck.Weight}{separatorForObject}{truck.BodyColor.Name}"; if (truck is not EntityDumpTruck dumpTruck) { return str; } return $"{str}{separatorForObject}{dumpTruck.Tent}{separatorForObject}{dumpTruck.DumpBox}{separatorForObject}{dumpTruck.TentColor.Name}{separatorForObject}{dumpTruck.DumpBoxColor.Name}"; } } }