Get to compile
This commit is contained in:
@@ -34,7 +34,7 @@ namespace Web.Tests.ViewModels
|
|||||||
Assert.That(log.CityName, Is.EqualTo(cityName));
|
Assert.That(log.CityName, Is.EqualTo(cityName));
|
||||||
Assert.That(log.Date, Is.EqualTo(date));
|
Assert.That(log.Date, Is.EqualTo(date));
|
||||||
Assert.That(log.EndOdometer.ToString(), Is.EqualTo(endOdometer));
|
Assert.That(log.EndOdometer.ToString(), Is.EqualTo(endOdometer));
|
||||||
Assert.That(log.VehicleId, Is.EqualTo(ethraId));
|
Assert.That(log.Vehicle, Is.EqualTo(ethraId));
|
||||||
Assert.That(log.GasPurchased.ToString(), Is.EqualTo(gasPurchased));
|
Assert.That(log.GasPurchased.ToString(), Is.EqualTo(gasPurchased));
|
||||||
Assert.That(log.LogType.Enum, Is.EqualTo(mileageLogType.Enum));
|
Assert.That(log.LogType.Enum, Is.EqualTo(mileageLogType.Enum));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ namespace Web.Tests.ViewModels.Log
|
|||||||
Assert.That(log.CityName, Is.EqualTo(cityName));
|
Assert.That(log.CityName, Is.EqualTo(cityName));
|
||||||
Assert.That(log.Date, Is.EqualTo(date));
|
Assert.That(log.Date, Is.EqualTo(date));
|
||||||
Assert.That(log.EndOdometer.ToString(), Is.EqualTo(endOdometer));
|
Assert.That(log.EndOdometer.ToString(), Is.EqualTo(endOdometer));
|
||||||
Assert.That(log.VehicleId, Is.EqualTo(ethraId));
|
|
||||||
Assert.That(log.GasPurchased.ToString(), Is.EqualTo(gasPurchased));
|
Assert.That(log.GasPurchased.ToString(), Is.EqualTo(gasPurchased));
|
||||||
Assert.That(log.LogType.Enum, Is.EqualTo(mileageLogType.Enum));
|
Assert.That(log.LogType.Enum, Is.EqualTo(mileageLogType.Enum));
|
||||||
}
|
}
|
||||||
@@ -78,7 +77,6 @@ namespace Web.Tests.ViewModels.Log
|
|||||||
CityName = "Different Town",
|
CityName = "Different Town",
|
||||||
Date = DateTime.MinValue,
|
Date = DateTime.MinValue,
|
||||||
EndOdometer = 1,
|
EndOdometer = 1,
|
||||||
VehicleId = "1",
|
|
||||||
GasPurchased = 1.0,
|
GasPurchased = 1.0,
|
||||||
LogType = new MileageLogTypeWrapper { Enum = MileageLogType.GasPurchase },
|
LogType = new MileageLogTypeWrapper { Enum = MileageLogType.GasPurchase },
|
||||||
User = logUser,
|
User = logUser,
|
||||||
@@ -91,7 +89,6 @@ namespace Web.Tests.ViewModels.Log
|
|||||||
Assert.That(log.CityName, Is.EqualTo(viewModelCityName));
|
Assert.That(log.CityName, Is.EqualTo(viewModelCityName));
|
||||||
Assert.That(log.Date, Is.EqualTo(viewModelDate));
|
Assert.That(log.Date, Is.EqualTo(viewModelDate));
|
||||||
Assert.That(log.EndOdometer.ToString(), Is.EqualTo(viewModelEndOdometer));
|
Assert.That(log.EndOdometer.ToString(), Is.EqualTo(viewModelEndOdometer));
|
||||||
Assert.That(log.VehicleId, Is.EqualTo(viewModelVehicleId));
|
|
||||||
Assert.That(log.GasPurchased.ToString(), Is.EqualTo(viewModelGasPurchased));
|
Assert.That(log.GasPurchased.ToString(), Is.EqualTo(viewModelGasPurchased));
|
||||||
Assert.That(log.LogType.Enum, Is.EqualTo(viewModelLogType.Enum));
|
Assert.That(log.LogType.Enum, Is.EqualTo(viewModelLogType.Enum));
|
||||||
|
|
||||||
@@ -118,7 +115,6 @@ namespace Web.Tests.ViewModels.Log
|
|||||||
CityName = cityName,
|
CityName = cityName,
|
||||||
Date = date,
|
Date = date,
|
||||||
EndOdometer = endOdometer,
|
EndOdometer = endOdometer,
|
||||||
VehicleId = ethraId,
|
|
||||||
GasPurchased = gasPurchased,
|
GasPurchased = gasPurchased,
|
||||||
LogType = mileageLogType
|
LogType = mileageLogType
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -243,6 +243,7 @@ namespace MileageTraker.Web.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
var log = viewModel.GetLog();
|
var log = viewModel.GetLog();
|
||||||
|
log.Vehicle = DataService.GetVehicle(viewModel.VehicleId);
|
||||||
log.User = DataService.FindUserByUsername(User.Identity.Name);
|
log.User = DataService.FindUserByUsername(User.Identity.Name);
|
||||||
log.Source = HttpContext.Request.Url.AbsolutePath;
|
log.Source = HttpContext.Request.Url.AbsolutePath;
|
||||||
log.UserHostAddress = HttpContext.Request.UserHostAddress;
|
log.UserHostAddress = HttpContext.Request.UserHostAddress;
|
||||||
@@ -266,7 +267,7 @@ namespace MileageTraker.Web.Controllers
|
|||||||
}, JsonRequestBehavior.AllowGet);
|
}, JsonRequestBehavior.AllowGet);
|
||||||
}
|
}
|
||||||
// verify vehicle exists
|
// verify vehicle exists
|
||||||
if (DataService.GetVehicle(log.VehicleId) == null)
|
if (log.Vehicle == null)
|
||||||
{
|
{
|
||||||
return Json(new
|
return Json(new
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ namespace MileageTraker.Web.Controllers
|
|||||||
|
|
||||||
var logs = from l in DataService.GetPossibleMatchingLogs(fuelLog).ToList()
|
var logs = from l in DataService.GetPossibleMatchingLogs(fuelLog).ToList()
|
||||||
where l != fuelLog.Log
|
where l != fuelLog.Log
|
||||||
let v = DataService.GetVehicle(l.VehicleId)
|
let v = l.Vehicle
|
||||||
let vm = new LogMatchViewModel(l, v, fuelLogViewModel)
|
let vm = new LogMatchViewModel(l, v, fuelLogViewModel)
|
||||||
orderby vm.MismatchCount ascending
|
orderby vm.MismatchCount ascending
|
||||||
select vm;
|
select vm;
|
||||||
@@ -89,7 +89,7 @@ namespace MileageTraker.Web.Controllers
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (fuelLog.Log != null)
|
if (fuelLog.Log != null)
|
||||||
matchViewModel.CurrentlyMatchedLog = new LogMatchViewModel(fuelLog.Log, DataService.GetVehicle(fuelLog.Log.VehicleId), fuelLogViewModel);
|
matchViewModel.CurrentlyMatchedLog = new LogMatchViewModel(fuelLog.Log, DataService.GetVehicle(fuelLog.Log.Vehicle.VehicleId), fuelLogViewModel);
|
||||||
|
|
||||||
// When creating a new Log to match the fuel log, this holds the ID between actions
|
// When creating a new Log to match the fuel log, this holds the ID between actions
|
||||||
TempData["FuelLogId"] = id;
|
TempData["FuelLogId"] = id;
|
||||||
|
|||||||
@@ -335,6 +335,7 @@ namespace MileageTraker.Web.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
var log = viewModel.GetLog();
|
var log = viewModel.GetLog();
|
||||||
|
log.Vehicle = DataService.GetVehicle(viewModel.VehicleId);
|
||||||
log.User = DataService.FindUserByFullName(userFullName);
|
log.User = DataService.FindUserByFullName(userFullName);
|
||||||
log.Source = HttpContext.Request.Url.AbsolutePath;
|
log.Source = HttpContext.Request.Url.AbsolutePath;
|
||||||
log.UserHostAddress = HttpContext.Request.UserHostAddress;
|
log.UserHostAddress = HttpContext.Request.UserHostAddress;
|
||||||
@@ -358,7 +359,7 @@ namespace MileageTraker.Web.Controllers
|
|||||||
}, JsonRequestBehavior.AllowGet);
|
}, JsonRequestBehavior.AllowGet);
|
||||||
}
|
}
|
||||||
// verify vehicle exists
|
// verify vehicle exists
|
||||||
if (DataService.GetVehicle(log.VehicleId) == null)
|
if (log.Vehicle == null)
|
||||||
{
|
{
|
||||||
return Json(new
|
return Json(new
|
||||||
{
|
{
|
||||||
|
|||||||
+20
-22
@@ -45,7 +45,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
|
|
||||||
_db.SaveChanges();
|
_db.SaveChanges();
|
||||||
|
|
||||||
UpdateCurrentOdometer(log.VehicleId);
|
UpdateCurrentOdometer(log.Vehicle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateLog(Log log)
|
public void UpdateLog(Log log)
|
||||||
@@ -85,7 +85,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
_db.Entry(log).State = EntityState.Modified;
|
_db.Entry(log).State = EntityState.Modified;
|
||||||
_db.SaveChanges();
|
_db.SaveChanges();
|
||||||
|
|
||||||
UpdateCurrentOdometer(log.VehicleId);
|
UpdateCurrentOdometer(log.Vehicle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DeleteLog(int id)
|
public void DeleteLog(int id)
|
||||||
@@ -109,7 +109,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
_db.Logs.Remove(log);
|
_db.Logs.Remove(log);
|
||||||
_db.SaveChanges();
|
_db.SaveChanges();
|
||||||
|
|
||||||
UpdateCurrentOdometer(log.VehicleId);
|
UpdateCurrentOdometer(log.Vehicle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IQueryable<Log> GetLogs()
|
public IQueryable<Log> GetLogs()
|
||||||
@@ -162,9 +162,8 @@ namespace MileageTraker.Web.DAL
|
|||||||
from log in FilterLogs(_db.Logs, query)
|
from log in FilterLogs(_db.Logs, query)
|
||||||
let previousLog = log.VehiclePreviousLog
|
let previousLog = log.VehiclePreviousLog
|
||||||
select new {log, previousLog, miles = (previousLog != null ? log.EndOdometer - previousLog.EndOdometer : 0)}
|
select new {log, previousLog, miles = (previousLog != null ? log.EndOdometer - previousLog.EndOdometer : 0)}
|
||||||
group l by l.log.VehicleId
|
group l by l.log.Vehicle
|
||||||
into g
|
into g
|
||||||
join v in _db.Vehicles on g.Key equals v.VehicleId
|
|
||||||
let miles = g.Sum(l => l.miles)
|
let miles = g.Sum(l => l.miles)
|
||||||
let gasPurchased = g.Sum(l => l.log.GasPurchased)
|
let gasPurchased = g.Sum(l => l.log.GasPurchased)
|
||||||
where miles > 0 || gasPurchased > 0
|
where miles > 0 || gasPurchased > 0
|
||||||
@@ -175,10 +174,10 @@ namespace MileageTraker.Web.DAL
|
|||||||
select
|
select
|
||||||
new
|
new
|
||||||
{
|
{
|
||||||
VehicleId = g.Key,
|
g.Key.VehicleId,
|
||||||
GasPurchased = gasPurchased,
|
GasPurchased = gasPurchased,
|
||||||
Miles = miles,
|
Miles = miles,
|
||||||
v.Prog,
|
g.Key.Prog,
|
||||||
LogPairs = logPairs
|
LogPairs = logPairs
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -203,9 +202,9 @@ namespace MileageTraker.Web.DAL
|
|||||||
group l by l.log.User into g
|
group l by l.log.User into g
|
||||||
let vehicleLogs =
|
let vehicleLogs =
|
||||||
from i in g
|
from i in g
|
||||||
group i by i.log.VehicleId into v
|
group i by i.log.Vehicle into v
|
||||||
from vehicle in _db.Vehicles
|
from vehicle in _db.Vehicles
|
||||||
where vehicle.VehicleId == v.Key
|
where vehicle.VehicleId == v.Key.VehicleId
|
||||||
let vehicleProg = vehicle.Prog
|
let vehicleProg = vehicle.Prog
|
||||||
let vehicleMiles = v.Sum(l => l.miles)
|
let vehicleMiles = v.Sum(l => l.miles)
|
||||||
let vehicleGasPurchased = v.Sum(l => l.log.GasPurchased)
|
let vehicleGasPurchased = v.Sum(l => l.log.GasPurchased)
|
||||||
@@ -216,7 +215,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
select new { PreviousLog = i.previousLog, Log = i.log }
|
select new { PreviousLog = i.previousLog, Log = i.log }
|
||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
VehicleId = v.Key,
|
v.Key.VehicleId,
|
||||||
Prog = vehicleProg,
|
Prog = vehicleProg,
|
||||||
Miles = vehicleMiles,
|
Miles = vehicleMiles,
|
||||||
GasPurchased = vehicleGasPurchased,
|
GasPurchased = vehicleGasPurchased,
|
||||||
@@ -273,7 +272,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
// vehicle id
|
// vehicle id
|
||||||
if (!String.IsNullOrEmpty(query.VehicleId))
|
if (!String.IsNullOrEmpty(query.VehicleId))
|
||||||
{
|
{
|
||||||
logs = logs.Where(l => l.VehicleId == query.VehicleId);
|
logs = logs.Where(l => l.Vehicle.VehicleId == query.VehicleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return logs;
|
return logs;
|
||||||
@@ -286,7 +285,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
where
|
where
|
||||||
dbLog.Date == log.Date &&
|
dbLog.Date == log.Date &&
|
||||||
dbLog.EndOdometer == log.EndOdometer &&
|
dbLog.EndOdometer == log.EndOdometer &&
|
||||||
dbLog.VehicleId == log.VehicleId
|
dbLog.Vehicle == log.Vehicle
|
||||||
select dbLog;
|
select dbLog;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -303,7 +302,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
|
|
||||||
public Log SearchPreviousLog(Log current)
|
public Log SearchPreviousLog(Log current)
|
||||||
{
|
{
|
||||||
var vehicleId = current.VehicleId;
|
var vehicleId = current.Vehicle.VehicleId;
|
||||||
var date = current.Date;
|
var date = current.Date;
|
||||||
var endOdometer = current.EndOdometer;
|
var endOdometer = current.EndOdometer;
|
||||||
return SearchPreviousLog(endOdometer, vehicleId, date, current.Created, current.LogId);
|
return SearchPreviousLog(endOdometer, vehicleId, date, current.Created, current.LogId);
|
||||||
@@ -312,7 +311,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
public Log SearchPreviousLog(int endOdometer, string vehicleId, DateTime date, DateTime created, int? excludeLogId = null)
|
public Log SearchPreviousLog(int endOdometer, string vehicleId, DateTime date, DateTime created, int? excludeLogId = null)
|
||||||
{
|
{
|
||||||
return (from pl in _db.Logs
|
return (from pl in _db.Logs
|
||||||
where pl.VehicleId == vehicleId &&
|
where pl.Vehicle.VehicleId == vehicleId &&
|
||||||
((pl.EndOdometer < endOdometer && pl.Date <= date)
|
((pl.EndOdometer < endOdometer && pl.Date <= date)
|
||||||
|| (pl.EndOdometer == endOdometer && pl.Date < date)
|
|| (pl.EndOdometer == endOdometer && pl.Date < date)
|
||||||
|| (pl.EndOdometer == endOdometer && pl.Date == date && pl.Created < created))
|
|| (pl.EndOdometer == endOdometer && pl.Date == date && pl.Created < created))
|
||||||
@@ -323,7 +322,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
|
|
||||||
public Log SearchNextLog(Log current)
|
public Log SearchNextLog(Log current)
|
||||||
{
|
{
|
||||||
var vehicleId = current.VehicleId;
|
var vehicleId = current.Vehicle.VehicleId;
|
||||||
var date = current.Date;
|
var date = current.Date;
|
||||||
var endOdometer = current.EndOdometer;
|
var endOdometer = current.EndOdometer;
|
||||||
return SearchNextLog(endOdometer, vehicleId, date, current.Created, current.LogId);
|
return SearchNextLog(endOdometer, vehicleId, date, current.Created, current.LogId);
|
||||||
@@ -332,7 +331,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
public Log SearchNextLog(int endOdometer, string vehicleId, DateTime date, DateTime created, int? excludeLogId = null)
|
public Log SearchNextLog(int endOdometer, string vehicleId, DateTime date, DateTime created, int? excludeLogId = null)
|
||||||
{
|
{
|
||||||
return (from nl in GetLogs()
|
return (from nl in GetLogs()
|
||||||
where nl.VehicleId == vehicleId &&
|
where nl.Vehicle.VehicleId == vehicleId &&
|
||||||
((nl.EndOdometer > endOdometer && nl.Date >= date)
|
((nl.EndOdometer > endOdometer && nl.Date >= date)
|
||||||
|| (nl.EndOdometer == endOdometer && nl.Date > date)
|
|| (nl.EndOdometer == endOdometer && nl.Date > date)
|
||||||
|| (nl.EndOdometer == endOdometer && nl.Date >= date && nl.Created > created))
|
|| (nl.EndOdometer == endOdometer && nl.Date >= date && nl.Created > created))
|
||||||
@@ -438,16 +437,15 @@ namespace MileageTraker.Web.DAL
|
|||||||
return vehicle;
|
return vehicle;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateCurrentOdometer(string vehicleId)
|
public void UpdateCurrentOdometer(Vehicle vehicle)
|
||||||
{
|
{
|
||||||
var mostRecentOdometerQuery =
|
var mostRecentOdometerQuery =
|
||||||
from log in _db.Logs
|
from log in _db.Logs
|
||||||
where
|
where
|
||||||
log.VehicleId == vehicleId
|
log.Vehicle == vehicle
|
||||||
orderby log.Date descending, log.EndOdometer descending
|
orderby log.Date descending, log.EndOdometer descending
|
||||||
select log;
|
select log;
|
||||||
var mostRecentOdometer = mostRecentOdometerQuery.FirstOrDefault();
|
var mostRecentOdometer = mostRecentOdometerQuery.FirstOrDefault();
|
||||||
var vehicle = _db.Vehicles.Find(vehicleId);
|
|
||||||
if (mostRecentOdometer != null && mostRecentOdometer.EndOdometer != vehicle.CurrentOdometer)
|
if (mostRecentOdometer != null && mostRecentOdometer.EndOdometer != vehicle.CurrentOdometer)
|
||||||
{
|
{
|
||||||
vehicle.CurrentOdometer = mostRecentOdometer.EndOdometer;
|
vehicle.CurrentOdometer = mostRecentOdometer.EndOdometer;
|
||||||
@@ -475,7 +473,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
let existingDate = log.Date
|
let existingDate = log.Date
|
||||||
let existingOdometer = log.EndOdometer
|
let existingOdometer = log.EndOdometer
|
||||||
where
|
where
|
||||||
log.VehicleId == vehicleId &&
|
log.Vehicle.VehicleId == vehicleId &&
|
||||||
// this is also in Utility.Algorithms, but doesn't get emitted to DB as SQL if used in method call
|
// this is also in Utility.Algorithms, but doesn't get emitted to DB as SQL if used in method call
|
||||||
!(existingDate == date
|
!(existingDate == date
|
||||||
|| existingOdometer == odometer
|
|| existingOdometer == odometer
|
||||||
@@ -706,7 +704,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
// matching by Date, Gas Purchased (gallons), and Vehicle
|
// matching by Date, Gas Purchased (gallons), and Vehicle
|
||||||
var vehicle = GetVehicleByTag(fuelLog.TagNumber);
|
var vehicle = GetVehicleByTag(fuelLog.TagNumber);
|
||||||
if (vehicle != null)
|
if (vehicle != null)
|
||||||
dateGasVehicleQuery = dateGasVehicleQuery.Where(log => log.VehicleId == vehicle.VehicleId);
|
dateGasVehicleQuery = dateGasVehicleQuery.Where(log => log.Vehicle.VehicleId == vehicle.VehicleId);
|
||||||
|
|
||||||
dateGasVehicleQuery = dateGasVehicleQuery
|
dateGasVehicleQuery = dateGasVehicleQuery
|
||||||
.Where(log =>
|
.Where(log =>
|
||||||
@@ -738,7 +736,7 @@ namespace MileageTraker.Web.DAL
|
|||||||
|
|
||||||
var vehicle = GetVehicleByTag(fuelLog.TagNumber);
|
var vehicle = GetVehicleByTag(fuelLog.TagNumber);
|
||||||
if (vehicle != null)
|
if (vehicle != null)
|
||||||
gasVehicleQuery = gasVehicleQuery.Where(log => log.VehicleId == vehicle.VehicleId);
|
gasVehicleQuery = gasVehicleQuery.Where(log => log.Vehicle.VehicleId == vehicle.VehicleId);
|
||||||
|
|
||||||
var futureDate = fuelLog.Date.AddDays(dateRange);
|
var futureDate = fuelLog.Date.AddDays(dateRange);
|
||||||
var pastDate = fuelLog.Date.AddDays(-dateRange);
|
var pastDate = fuelLog.Date.AddDays(-dateRange);
|
||||||
|
|||||||
+3
-5
@@ -12,9 +12,7 @@ namespace MileageTraker.Web.Models
|
|||||||
public int LogId { get; set; }
|
public int LogId { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[StringLength(6, MinimumLength = 4, ErrorMessage = "Enter 4 digit number")]
|
public virtual Vehicle Vehicle { get; set; }
|
||||||
[RegularExpression(@"\d+", ErrorMessage = "Enter only numbers")]
|
|
||||||
public string VehicleId { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[Range(1, 500000, ErrorMessage = "Between 1 and 500k")]
|
[Range(1, 500000, ErrorMessage = "Between 1 and 500k")]
|
||||||
@@ -83,7 +81,7 @@ namespace MileageTraker.Web.Models
|
|||||||
ValidationResult result = null;
|
ValidationResult result = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
dataService.ValidateOdometerChronology(VehicleId, EndOdometer, Date);
|
dataService.ValidateOdometerChronology(Vehicle.VehicleId, EndOdometer, Date);
|
||||||
}
|
}
|
||||||
catch (ChronologicalOrderException ex)
|
catch (ChronologicalOrderException ex)
|
||||||
{
|
{
|
||||||
@@ -92,7 +90,7 @@ namespace MileageTraker.Web.Models
|
|||||||
if (result != null)
|
if (result != null)
|
||||||
yield return result;
|
yield return result;
|
||||||
|
|
||||||
var inactiveDate = dataService.GetVehicle(VehicleId).InactiveDate;
|
var inactiveDate = dataService.GetVehicle(Vehicle.VehicleId).InactiveDate;
|
||||||
if (inactiveDate.HasValue && Date.Date > inactiveDate)
|
if (inactiveDate.HasValue && Date.Date > inactiveDate)
|
||||||
{
|
{
|
||||||
yield return new ValidationResult(
|
yield return new ValidationResult(
|
||||||
|
|||||||
Reference in New Issue
Block a user