Fuel Log Import basic functionality
This commit is contained in:
+49
-1
@@ -1,8 +1,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using MileageTraker.Web.Context;
|
||||
using MileageTraker.Web.Models;
|
||||
using MileageTraker.Web.Utility;
|
||||
@@ -409,6 +409,20 @@ namespace MileageTraker.Web.DAL
|
||||
return _db.Vehicles.Find(id);
|
||||
}
|
||||
|
||||
public Vehicle GetVehicleByTag(string tagNumber)
|
||||
{
|
||||
var vehicle = GetVehicles().FirstOrDefault(v => v.TagNumber == tagNumber);
|
||||
if (vehicle != null)
|
||||
return vehicle; // exact match, this is optimal for the DB query
|
||||
|
||||
// no match, normalize the tags, have to get all the vehicles for regex
|
||||
var vehicles = GetVehicles().ToList();
|
||||
Func<string, string> b = s => Regex.Replace(s.ToLower(), @"-|\s", "");
|
||||
vehicle = vehicles.FirstOrDefault(v => b(v.TagNumber) == b(tagNumber));
|
||||
|
||||
return vehicle;
|
||||
}
|
||||
|
||||
public void UpdateCurrentOdometer(string vehicleId)
|
||||
{
|
||||
var mostRecentOdometerQuery =
|
||||
@@ -630,6 +644,40 @@ namespace MileageTraker.Web.DAL
|
||||
return _db.FuelLogs.Find(id);
|
||||
}
|
||||
|
||||
public IEnumerable<FuelLog> GetDuplicateFuelLogs(FuelLog log)
|
||||
{
|
||||
return
|
||||
from dbLog in GetFuelLogs()
|
||||
where
|
||||
dbLog.Date == log.Date &&
|
||||
dbLog.GasPurchased == log.GasPurchased &&
|
||||
dbLog.TagNumber == log.TagNumber
|
||||
select dbLog;
|
||||
}
|
||||
|
||||
public Log GetMatchingLog(FuelLog fuelLog)
|
||||
{
|
||||
var logs = GetLogs();
|
||||
|
||||
// matching by Date, Gas Purchased (gallons), and Vehicle
|
||||
|
||||
var vehicle = GetVehicleByTag(fuelLog.TagNumber);
|
||||
if (vehicle != null)
|
||||
logs = logs.Where(log => log.VehicleId == vehicle.VehicleId);
|
||||
else return null;
|
||||
|
||||
logs = logs.Where(log =>
|
||||
log.Date.Year == fuelLog.Date.Year &&
|
||||
log.Date.Month == fuelLog.Date.Month &&
|
||||
log.Date.Day == fuelLog.Date.Day
|
||||
);
|
||||
logs = logs.Where(log => log.GasPurchased == fuelLog.GasPurchased);
|
||||
|
||||
//logs = logs.Where(log => log.User.FullName == fuelLog.DriverFullName);
|
||||
//logs = logs.Where(log => log.EndOdometer == fuelLog.Odometer);
|
||||
|
||||
return logs.FirstOrDefault();
|
||||
}
|
||||
|
||||
public IList<DateTime> GetValidFuelLogMonths()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user