using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using MileageTraker.Web.Utility; namespace MileageTraker.Web.Models { public class Vehicle { [Required] public int Key { get; set; } [Key] [Required] [StringLength(6, MinimumLength = 4, ErrorMessage = "Must be at least a 4 digit number")] [Display(Name = "EHTRA ID")] [RegularExpression(@"\d+", ErrorMessage = "Vehicle ID must be all numbers")] public string VehicleId { get; set; } [Required] [RegularExpression(@"\d{4}", ErrorMessage = "Must be 4 numbers")] public string ModelYear { get; set; } [Required] public string Make { get; set; } [Display(Name = "Model")] [Required] public string CarModel { get; set; } public string Color { get; set; } [Required] [RegularExpression(@"Car|Truck|SUV|Van", ErrorMessage = "Must be Car, Truck, SUV, or Van")] [FormatHint("Car, Truck, SUV or Van")] public string Type { get; set; } [Required] [Display(Name = "VIN")] [RegularExpression(@"[0-9A-HJ-NPR-Z]{17}", ErrorMessage = "VIN must be 17-characters, not including letters I, O or Q")] public string Vin { get; set; } [Required] public decimal Price { get; set; } [Required] [RegularExpression(@"\d{1,2}/\d{2}", ErrorMessage = "PurDate must be in mm/yy format")] public string PurDate { get; set; } [Required] [Display(Name = "Tag#")] public string TagNumber { get; set; } [Required] public string Prog { get; set; } [RegularExpression(@"Unassigned|[A-Za-z().]+(\s+[A-Za-z().]+)+", ErrorMessage = "Please enter the full name")] [DisplayFormat(NullDisplayText = "Unassigned")] public string Assigned { get; set; } public string Notes { get; set; } [Display(Name = "Current Odometer", ShortName= "ODO")] [DisplayFormat(NullDisplayText = "?")] public int? CurrentOdometer { get; set; } public virtual ICollection Logs { get; set; } } }