Admin import functional

This commit is contained in:
2014-02-02 10:19:02 -05:00
parent 13c5c6cde5
commit 3ab80e283a
41 changed files with 2809 additions and 101 deletions
+32 -17
View File
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Linq.Expressions;
using MileageTraker.Web.Context;
using MileageTraker.Web.Models;
using MileageTraker.Web.Utility;
@@ -251,27 +250,23 @@ namespace MileageTraker.Web.DAL
if (query.LogType.HasValue)
{
// WTF The specified value is not an instance of type 'Edm.Int32'
Expression<Func<Log, bool>> predicate;
switch (query.LogType.Value)
{
case MileageLogType.NonCommuting:
predicate = l => l.LogType.Value == 1;
break;
case MileageLogType.Commuting:
predicate = l => l.LogType.Value == 2;
break;
case MileageLogType.GasPurchase:
predicate = l => l.LogType.Value == 3;
break;
default:
throw new ArgumentOutOfRangeException();
}
logs = logs.Where(predicate);
logs = logs.Where(query.LogType.Value.GetEqualsPredicate());
}
return logs;
}
public IEnumerable<Log> GetDuplicateLogs(Log log)
{
return
from dbLog in GetLogs().Where(log.LogType.Enum.GetEqualsPredicate())
where
dbLog.Date == log.Date &&
dbLog.EndOdometer == log.EndOdometer &&
dbLog.VehicleId == log.VehicleId
select dbLog;
}
public IEnumerable<Log> GetRecentLogsByUsername(string username)
{
return
@@ -347,6 +342,26 @@ namespace MileageTraker.Web.DAL
return GetPurposeTypes().FirstOrDefault(pt => pt.PurposeTypeId == id);
}
public PurposeType FindPurposeType(string name)
{
if (string.IsNullOrEmpty(name))
return null;
var mpt =
GetPurposeTypes()
.Select(pt =>
Tuple.Create(pt.PurposeTypeId,
Algorithms.Similarity(
pt.Purpose.ToLowerInvariant(),
name.ToLowerInvariant())))
.OrderByDescending(tp => tp.Item2)
.FirstOrDefault(tp => tp.Item2 > .8);
if (mpt != null)
return FindPurposeType(mpt.Item1);
return null;
}
#endregion
#region Vehicle