PIbd-14_Rachek_A.S._Base/lab_0/Entities/EntityBus.cs
2024-05-23 08:50:46 +04:00

72 lines
2.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace ProjectBus.Entities;
/// <summary>
/// Класс-сущность "Автобус"
/// </summary>
public class EntityBus : EntitySimpleBus
{
/// <summary>
/// Дополнительный цвет (для опциональных элементов)
/// </summary>
///
public Color AdditionalColor { get; private set; }
public void setAdditionalColor(Color color)
{
AdditionalColor = color;
}
/// <summary>
/// Признак (опция) наличия дополнительного отсека
/// </summary>
public bool AdditionalCompartment { get; private set; }
/// <summary>
/// Признак (опция) наличия гармошки
/// </summary>
public bool Accordion { get; private set; }
/// <summary>
/// Инициализация полей объекта-класса спортивного автомобиля
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес автобуса</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="additionalCompartment">Признак наличия дополнительного отсека</param>
/// <param name="accordion">Признак наличия гармошки</param>
public EntityBus(int speed, double weight, Color bodyColor, Color additionalColor, bool additionalCompartment, bool accordion) : base(speed, weight, bodyColor)
{
AdditionalColor = additionalColor;
AdditionalCompartment = additionalCompartment;
Accordion = accordion;
}
/// <summary>
/// Получение строк со значениями свойств объекта класса-сущности
/// </summary>
/// <returns></returns>
public override string[] GetStringRepresentation()
{
return new[]
{
nameof(EntityBus), Speed.ToString(),
Weight.ToString(), BodyColor.Name, AdditionalColor.Name, AdditionalCompartment.ToString(), Accordion.ToString()
};
}
/// <summary>
/// Создание объекта из массива строк
/// </summary>
/// <param name="strs"></param>
/// <returns></returns>
public static EntitySimpleBus? CreateEntityBus(string[] strs)
{
if (strs.Length != 7 || strs[0] != nameof(EntityBus))
{
return null;
}
return new EntityBus(Convert.ToInt32(strs[1]), Convert.ToDouble(strs[2]), Color.FromName(strs[3]), Color.FromName(strs[4]), Convert.ToBoolean(strs[5]), Convert.ToBoolean(strs[5]));
}
}