Загрузка данных


using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace AutoServiceApp.Models
{
    /// <summary>
    /// Модель транспортного средства
    /// </summary>
    public class Vehicle
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        [Required(ErrorMessage = "VIN номер обязателен")]
        [Display(Name = "VIN номер")]
        [StringLength(17, MinimumLength = 17, ErrorMessage = "VIN номер должен содержать ровно 17 символов")]
        [RegularExpression(@"^[A-HJ-NPR-Z0-9]{17}$", ErrorMessage = "Неверный формат VIN номера")]
        public string Vin { get; set; } = string.Empty;

        [Required(ErrorMessage = "Государственный номер обязателен")]
        [Display(Name = "Государственный номер")]
        [StringLength(15, ErrorMessage = "Госномер не должен превышать 15 символов")]
        public string LicensePlate { get; set; } = string.Empty;

        [Required(ErrorMessage = "Марка обязательна")]
        [Display(Name = "Марка")]
        [StringLength(50, ErrorMessage = "Марка не должна превышать 50 символов")]
        public string Brand { get; set; } = string.Empty;

        [Required(ErrorMessage = "Модель обязательна")]
        [Display(Name = "Модель")]
        [StringLength(50, ErrorMessage = "Модель не должна превышать 50 символов")]
        public string Model { get; set; } = string.Empty;

        [Display(Name = "Год выпуска")]
        [Range(1900, 2099, ErrorMessage = "Неверный год выпуска")]
        public int? Year { get; set; }

        [Display(Name = "Пробег (км)")]
        [Range(0, 9999999, ErrorMessage = "Неверное значение пробега")]
        public int? Mileage { get; set; }

        [Display(Name = "Цвет")]
        [StringLength(30, ErrorMessage = "Цвет не должен превышать 30 символов")]
        public string? Color { get; set; }

        // Внешний ключ
        [Required(ErrorMessage = "Клиент обязателен")]
        [Display(Name = "Клиент")]
        public int ClientId { get; set; }

        // Навигационные свойства
        [ForeignKey("ClientId")]
        public virtual Client? Client { get; set; }
        public virtual ICollection<ServiceRequest>? ServiceRequests { get; set; }

        // Метод для отображения
        public override string ToString()
        {
            return $"{Brand} {Model} ({LicensePlate})";
        }
    }
}