using System; using System.ComponentModel.DataAnnotations; using System.Web.Mvc; using AutoMapper; using MileageTraker.Web.Attributes; namespace MileageTraker.Web.ViewModels.VehicleRecall { public class VehicleRecallViewModel { [HiddenInput(DisplayValue = false)] public int? VehicleRecallId { get; set; } [Required] [Remote("Exists", "Vehicle", ErrorMessage = "ID not found")] [StringLength(6, MinimumLength = 4, ErrorMessage = "Must be at least a 4 digit number")] [Display(Name = "Vehicle ID")] [RegularExpression(@"\d+", ErrorMessage = "Vehicle ID must be all numbers")] [InputSize("mini")] public string VehicleId { get; set; } [Required] [Display(Name = "Recall Identifier")] [StringLength(128, MinimumLength = 3)] [InputSize("small")] public string Identifier { get; set; } [Required] [StringLength(128, MinimumLength = 3, ErrorMessage = "Minimum 3 characters")] public string Description { get; set; } [ScaffoldColumn(false)] [Display(Name = "Vehicle Service")] [UIHint("VehicleServiceLink")] public int CompletedService_VehicleServiceId { get; set; } [ScaffoldColumn(false)] [Display(Name = "Completed Date")] public DateTime CompletedService_InvoiceDate { get; set; } static VehicleRecallViewModel() { Mapper.CreateMap(); Mapper.CreateMap() .ForMember(dest => dest.VehicleId, opt => opt.MapFrom(src => src.Vehicle.VehicleId)); } public VehicleRecallViewModel(Models.VehicleRecall vehicleRecall) { Mapper.Map(vehicleRecall, this); } public VehicleRecallViewModel() { } public Models.VehicleRecall GetVehicleRecall() { var vehicleRecall = new Models.VehicleRecall(); Mapper.Map(this, vehicleRecall); return vehicleRecall; } } }