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