89 lines
1.9 KiB
C#
89 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using MileageTraker.Web.Models;
|
|
using MileageTraker.Web.Utility;
|
|
|
|
namespace MileageTraker.Web.ViewModels.Log
|
|
{
|
|
public class LogQueryViewModel
|
|
{
|
|
public int? Year { get; set; }
|
|
public int? Month { get; set; }
|
|
public int? MonthRange { get; set; }
|
|
public MileageLogType? LogType { get; set; }
|
|
public string EmployeeName { get; set; }
|
|
public string VehicleId { get; set; }
|
|
|
|
public string YearMonthStart {get
|
|
{
|
|
return string.Format("{0}-{1:00}", Year, Month);
|
|
}}
|
|
|
|
public string YearMonthEnd
|
|
{
|
|
get
|
|
{
|
|
var dateTime = new DateTime(Year.Value, Month.Value, 1);
|
|
var time = dateTime.AddMonths(MonthRange.Value - 1);
|
|
return string.Format("{0}-{1:00}", time.Year, time.Month);
|
|
}
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
var v = new List<string>();
|
|
|
|
if (Year.HasValue && Month.HasValue)
|
|
{
|
|
var str = YearMonthStart;
|
|
|
|
if (MonthRange.HasValue && MonthRange > 1)
|
|
str += "to" + YearMonthEnd;
|
|
|
|
v.Add(str);
|
|
}
|
|
|
|
if (LogType.HasValue)
|
|
v.Add(LogType.Value.GetDisplayShortName());
|
|
|
|
if (!string.IsNullOrEmpty(VehicleId))
|
|
v.Add(VehicleId);
|
|
|
|
if (!string.IsNullOrEmpty(EmployeeName))
|
|
v.Add(EmployeeName);
|
|
|
|
return String.Join("_", v).Replace(' ', '-');
|
|
}
|
|
|
|
public bool HasParameters()
|
|
{
|
|
return Year.HasValue ||
|
|
LogType.HasValue ||
|
|
!string.IsNullOrEmpty(EmployeeName) ||
|
|
!string.IsNullOrEmpty(VehicleId);
|
|
}
|
|
|
|
public LogQueryViewModel Clone()
|
|
{
|
|
return new LogQueryViewModel
|
|
{
|
|
EmployeeName = EmployeeName,
|
|
LogType = LogType,
|
|
Month = Month,
|
|
MonthRange = MonthRange,
|
|
VehicleId = VehicleId,
|
|
Year = Year
|
|
};
|
|
}
|
|
|
|
public LogQueryViewModel CloneSet(string vehicleId = null, string employeeName = null)
|
|
{
|
|
var clone = Clone();
|
|
if (vehicleId != null)
|
|
clone.VehicleId = vehicleId;
|
|
if (employeeName != null)
|
|
clone.EmployeeName = employeeName;
|
|
return clone;
|
|
}
|
|
}
|
|
} |