Get to compile

This commit is contained in:
2015-10-02 10:45:25 -04:00
parent a2368f5e69
commit 0a90d48f2d
7 changed files with 30 additions and 36 deletions
@@ -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
};
+2 -1
View File
@@ -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
{
+2 -2
View File
@@ -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;
+2 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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(