Add vehicle service controller and view

This commit is contained in:
2015-10-07 23:29:10 -04:00
parent 306381b3c6
commit b962ecb119
11 changed files with 269 additions and 2 deletions
@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
namespace MileageTraker.Web.ViewModels.VehicleService
{
public class VehicleServiceQueryViewModel
{
public int? Year { get; set; }
public int? Month { get; set; }
public string YearMonthStart {get
{
return string.Format("{0}-{1:00}", Year, Month);
}}
public override string ToString()
{
var v = new List<string>();
if (Year.HasValue && Month.HasValue)
{
var str = YearMonthStart;
v.Add(str);
}
else if (Year.HasValue)
{
v.Add(Year.ToString());
}
return String.Join("_", v).Replace(' ', '-');
}
public bool HasParameters()
{
return Year.HasValue;
}
}
}
@@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace MileageTraker.Web.ViewModels.VehicleService
{
public class VehicleServiceResultsViewModel
{
public IEnumerable<VehicleServiceViewModel> ServiceItems { get; set; }
}
}
@@ -0,0 +1,67 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using AutoMapper;
using MileageTraker.Web.Attributes;
namespace MileageTraker.Web.ViewModels.VehicleService
{
public class VehicleServiceViewModel
{
[HiddenInput(DisplayValue = false)]
public int? VehicleServiceId { 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; }
[DataType(DataType.DateTime)]
[DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
[FormatHint("mm/dd/yyyy")]
[InputSize("small")]
public DateTime? InvoiceDate { get; set; }
[Required]
[StringLength(64, MinimumLength = 3, ErrorMessage = "Minimum 3 characters")]
public string ServiceCenterName { get; set; }
[Required]
[StringLength(32)]
[InputSize("small")]
public string InvoiceNumber { get; set; }
[Required]
[InputSize("small")]
[Units("$")]
public decimal Price { get; set; }
[StringLength(64, MinimumLength = 3, ErrorMessage = "Minimum 3 characters")]
public string Description { get; set; }
static VehicleServiceViewModel()
{
Mapper.CreateMap<VehicleServiceViewModel, Models.VehicleService>();
Mapper.CreateMap<Models.VehicleService, VehicleServiceViewModel>();
}
public VehicleServiceViewModel(Models.VehicleService vehicleService)
{
Mapper.Map(vehicleService, this);
}
public VehicleServiceViewModel()
{
}
public Models.VehicleService GetVehicleService()
{
var vehicleService = new Models.VehicleService();
Mapper.Map(this, vehicleService);
return vehicleService;
}
}
}