using System; using System.ComponentModel.DataAnnotations; using System.Web.Mvc; using AutoMapper; namespace MileageTraker.Web.ViewModels.FuelLog { public class FuelLogViewModel { [HiddenInput(DisplayValue = false)] public int FuelLogId { get; set; } [Required] [DataType(DataType.Date)] [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")] public DateTime Date { get; set; } [Required] [StringLength(128)] [Display(Name = "Driver Name")] public string DriverFullName { get; set; } [Required] [Display(Name = "Tag#")] public string TagNumber { get; set; } [Required] public int Odometer { get; set; } [StringLength(64)] [Display(Name = "City Name")] public string CityName { get; set; } [Display(Name = "MPG")] public double MPG { get; set; } [Required] [Display(Name = "Gas Purchased")] public double GasPurchased { get; set; } [Required] [Display(Name = "Total Price")] public decimal TotalPrice { get; set; } // Matched log [HiddenInput(DisplayValue = false)] public int? LogId { get; set; } static FuelLogViewModel() { Mapper.CreateMap(); Mapper.CreateMap() .ForMember(dest => dest.LogId, opt => opt.ResolveUsing( fl => fl.Log != null ? (int?)fl.Log.LogId : null )); } public FuelLogViewModel(Models.FuelLog fuelLog) { Mapper.Map(fuelLog, this); } public FuelLogViewModel() { } } }