Replace Log.EmployeeName with Log.User, drop from database

This commit is contained in:
2013-01-06 14:33:49 -05:00
parent d5d58c1649
commit 0b4c7914b3
15 changed files with 140 additions and 54 deletions
@@ -13,7 +13,6 @@ namespace Web.Tests.ViewModels
{
var cityName = "My Town";
var date = DateTime.Today;
var employeeName = "Name";
var endOdometer = "1234";
var ethraId = "4567";
string gasPurchased = "2.546";
@@ -24,7 +23,6 @@ namespace Web.Tests.ViewModels
{
CityName = cityName,
Date = date,
EmployeeName = employeeName,
EndOdometer = endOdometer,
VehicleId = ethraId,
GasPurchased = gasPurchased,
@@ -35,7 +33,6 @@ namespace Web.Tests.ViewModels
Assert.That(log.CityName, Is.EqualTo(cityName));
Assert.That(log.Date, Is.EqualTo(date));
Assert.That(log.EmployeeName, Is.EqualTo(employeeName));
Assert.That(log.EndOdometer.ToString(), Is.EqualTo(endOdometer));
Assert.That(log.VehicleId, Is.EqualTo(ethraId));
Assert.That(log.GasPurchased.ToString(), Is.EqualTo(gasPurchased));
Binary file not shown.
+1 -5
View File
@@ -8,7 +8,6 @@ namespace MileageTraker.Web.Controllers
{
public class CreateLogController : ControllerBase
{
private const string CookieKeyEmployeename = "mr_employeeName";
private const string CookeNameVehicleid = "mr_vehicleId";
private const string CookieKeyLogtype = "mr_logType";
@@ -50,11 +49,11 @@ namespace MileageTraker.Web.Controllers
if (ModelState.IsValid)
{
SetCookieValue(CookieKeyLogtype, model.LogType.Enum.ToString());
SetCookieValue(CookieKeyEmployeename, model.EmployeeName);
SetCookieValue(CookeNameVehicleid, model.VehicleId);
// Save the new log
var log = model.GetLog();
log.User = DataService.FindUserByUsername(User.Identity.Name);
log.Source = HttpContext.Request.Url.AbsolutePath;
log.UserHostAddress = HttpContext.Request.UserHostAddress;
log.UserAgent = HttpContext.Request.UserAgent;
@@ -62,7 +61,6 @@ namespace MileageTraker.Web.Controllers
TempData["StatusMessage-Type"] = "alert-success";
TempData["StatusMessage"] =
@"You've successfully created an entry
for <strong>" + model.EmployeeName + @"</strong>
traveling to <strong>" + model.CityName + @"</strong>
on <strong>" + model.Date.ToShortDateString() + @"</strong>
in Vehicle Id <strong>" + model.VehicleId + @"</strong>
@@ -85,13 +83,11 @@ namespace MileageTraker.Web.Controllers
{
MileageLogType logType;
Enum.TryParse(GetCookieValue(CookieKeyLogtype), true, out logType);
var name = GetCookieValue(CookieKeyEmployeename);
var vehicleId = GetCookieValue(CookeNameVehicleid);
return new CreateLogViewModel
{
LogType = logType,
EmployeeName = name,
VehicleId = vehicleId,
Date = DateTime.Today
};
+7 -7
View File
@@ -186,7 +186,7 @@ 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.EmployeeName
group l by l.log.User
into g
let miles = g.Sum(l => l.miles)
let gasPurchased = g.Sum(l => l.log.GasPurchased)
@@ -198,7 +198,7 @@ namespace MileageTraker.Web.DAL
select
new
{
EmployeeName = g.Key,
User = g.Key,
GasPurchased = gasPurchased,
Miles = miles,
LogPairs = logPairs
@@ -206,7 +206,7 @@ namespace MileageTraker.Web.DAL
return items.ToList().Select(i => new EmployeeMileageItem
{
EmployeeName = i.EmployeeName,
EmployeeName = i.User.FullName,
GasPurchased = i.GasPurchased,
Miles = i.Miles,
LogPairs = i.LogPairs.ToList()
@@ -251,7 +251,7 @@ namespace MileageTraker.Web.DAL
{
return
(from l in _db.Logs
where l.EmployeeName == employeeName
where l.User.FullName == employeeName
orderby l.Created descending
select l)
.Take(3)
@@ -355,7 +355,7 @@ namespace MileageTraker.Web.DAL
String.Format(
"Odometer of {0} miles on {1:d} conflicts with other logs for vehicle {2}" +
", including an odometer log of {3} miles on {4:d} reported by {5}.",
odometer, date, vehicleId, conflictingLog.EndOdometer, conflictingLog.Date, conflictingLog.EmployeeName));
odometer, date, vehicleId, conflictingLog.EndOdometer, conflictingLog.Date, conflictingLog.User.FullName));
}
}
@@ -406,8 +406,8 @@ namespace MileageTraker.Web.DAL
{
var names = _db.Vehicles.Select(v => v.Assigned).Where(n => !String.IsNullOrEmpty(n) && n != "to be sold");
var logNames =
(from l in _db.Logs
select l.EmployeeName);
(from l in _db.Users
select l.FullName);
return names.Union(logNames).Distinct();
}
+13 -13
View File
@@ -42,7 +42,8 @@ namespace MileageTraker.Web.DAL
{
context.Cities.Add(city);
}
/* // make some random logs
var random = new Random(10);
foreach (var vehicle in vehicles.Where(v => v.Assigned != null))
{
@@ -71,19 +72,18 @@ namespace MileageTraker.Web.DAL
city = cities.OrderBy(c => Guid.NewGuid()).First();
var log = new Log
{
{
CityName = city.Name,
Date = date,
EmployeeName = driver,
EndOdometer = odom,
GasPurchased = gas,
Date = date,
EndOdometer = odom,
GasPurchased = gas,
LogType = logType,
VehicleId = vehicle.VehicleId,
Source = "Autogenerated",
UserAgent = "IE",
UserHostAddress = "127.0.0.1",
VehicleId = vehicle.VehicleId,
Source = "Autogenerated",
UserAgent = "IE",
UserHostAddress = "127.0.0.1",
Created = date
};
};
context.Logs.Add(log);
date += new TimeSpan(random.Next(15), 0, 0, 0);
@@ -92,7 +92,7 @@ namespace MileageTraker.Web.DAL
odom += random.Next(25) + 25;
}
}
context.SaveChanges();
}
context.SaveChanges(); */
}
}
}
+8 -4
View File
@@ -1,7 +1,6 @@
using System;
using System.IO;
using System.Linq;
using System.Web;
using MileageTraker.Web.DAL;
using MileageTraker.Web.Models;
@@ -92,12 +91,11 @@ namespace MileageTraker.Web.Migrations
,'Driver'
,'Driver')");
//var folder = AppDomain.CurrentDomain.GetData("App_Data").ToString();
var existingUsers = new [] {"dsloan", "ccecil"};
var appDomain = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data");
var users = UserImporter.Import(Path.Combine(appDomain, "UserEmails.xls"));
users = (from u in users
where u.Username != "dsloan" &&
u.Username != "ccecil"
where !existingUsers.Contains(u.Username)
select u).ToList();
foreach (var user in users)
{
@@ -105,6 +103,12 @@ namespace MileageTraker.Web.Migrations
Sql(GetUserInsertSql(user));
Sql(GetUserInsertRoleDriverSql(user));
}
Sql(@"UPDATE [Log]
SET [Log].User_UserId = [User].UserId
FROM [Log]
INNER JOIN [User] ON
[User].FullName = [Log].EmployeeName");
}
public override void Down()
@@ -0,0 +1,24 @@
// <auto-generated />
namespace MileageTraker.Web.Migrations
{
using System.Data.Entity.Migrations;
using System.Data.Entity.Migrations.Infrastructure;
public sealed partial class UpdateLogUserRequired : IMigrationMetadata
{
string IMigrationMetadata.Id
{
get { return "201301061905425_UpdateLogUserRequired"; }
}
string IMigrationMetadata.Source
{
get { return null; }
}
string IMigrationMetadata.Target
{
get { return "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"; }
}
}
}
@@ -0,0 +1,25 @@
namespace MileageTraker.Web.Migrations
{
using System.Data.Entity.Migrations;
public partial class UpdateLogUserRequired : DbMigration
{
public override void Up()
{
DropForeignKey("Log", "User_UserId", "User");
DropIndex("Log", new[] { "User_UserId" });
AlterColumn("Log", "User_UserId", c => c.Guid(nullable: false));
AddForeignKey("Log", "User_UserId", "User", "UserId", cascadeDelete: true);
CreateIndex("Log", "User_UserId");
}
public override void Down()
{
DropIndex("Log", new[] { "User_UserId" });
DropForeignKey("Log", "User_UserId", "User");
AlterColumn("Log", "User_UserId", c => c.Guid());
CreateIndex("Log", "User_UserId");
AddForeignKey("Log", "User_UserId", "User", "UserId");
}
}
}
@@ -0,0 +1,24 @@
// <auto-generated />
namespace MileageTraker.Web.Migrations
{
using System.Data.Entity.Migrations;
using System.Data.Entity.Migrations.Infrastructure;
public sealed partial class DropLogEmployeeName : IMigrationMetadata
{
string IMigrationMetadata.Id
{
get { return "201301061929006_DropLogEmployeeName"; }
}
string IMigrationMetadata.Source
{
get { return null; }
}
string IMigrationMetadata.Target
{
get { return "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"; }
}
}
}
@@ -0,0 +1,22 @@
namespace MileageTraker.Web.Migrations
{
using System.Data.Entity.Migrations;
public partial class DropLogEmployeeName : DbMigration
{
public override void Up()
{
DropColumn("Log", "EmployeeName");
}
public override void Down()
{
AddColumn("Log", "EmployeeName", c => c.String(nullable: false));
Sql(@"UPDATE [Log]
SET [Log].EmployeeName = [User].FullName
FROM [Log]
INNER JOIN [User] ON
[User].UserId = [Log].User_UserId");
}
}
}
+6 -5
View File
@@ -38,12 +38,13 @@ namespace MileageTraker.Web.Models
[InputSize("medium")]
public string CityName { get; set; }
[Required]
[Display(Name = "Employee / Driver")]
[RegularExpression(@"[A-Za-z().]+(\s+[A-Za-z().]+)+", ErrorMessage = "Need complete name")]
[InputSize("medium")]
public string EmployeeName { get; set; }
//[Required]
//[Display(Name = "Employee / Driver")]
//[RegularExpression(@"[A-Za-z().]+(\s+[A-Za-z().]+)+", ErrorMessage = "Need complete name")]
//[InputSize("medium")]
//public string EmployeeName { get; set; }
[Required]
[Display(Name = "Employee / Driver")]
[HiddenInput(DisplayValue = false)]
public virtual User User { get; set; }
@@ -18,8 +18,7 @@ namespace MileageTraker.Web.ViewModels.CreateLog
static ConfirmCreateLogViewModel()
{
Mapper.CreateMap<CreateLogViewModel, ConfirmCreateLogViewModel>()
.ForMember(c => c.CityName, opt => opt.AddFormatter(new TitleCaseFormatter()))
.ForMember(c => c.EmployeeName, opt => opt.AddFormatter(new TitleCaseFormatter()));
.ForMember(c => c.CityName, opt => opt.AddFormatter(new TitleCaseFormatter()));
}
public ConfirmCreateLogViewModel(CreateLogViewModel createLogViewModel)
@@ -41,11 +40,6 @@ namespace MileageTraker.Web.ViewModels.CreateLog
Miles = endOdometer - previousLog.EndOdometer;
}
var matchingEmployeeName = dataService.GetEmployeeNameCorrected(EmployeeName);
if (!string.IsNullOrEmpty(matchingEmployeeName))
EmployeeName = matchingEmployeeName;
var matchingCity = dataService.GetCitiesCorrected(CityName);
if (!string.IsNullOrEmpty(matchingCity))
@@ -32,13 +32,7 @@ namespace MileageTraker.Web.ViewModels.CreateLog
[Display(Name = "Type")]
[NoEditLabel]
public MileageLogTypeWrapper LogType { get; set; }
[Required(ErrorMessage = "Required")]
[Display(Name = "Employee / Driver")]
[RegularExpression(@"[A-Za-z().]+(\s+[A-Za-z().]+)+", ErrorMessage = "Need complete name")]
[InputSize("medium")]
public string EmployeeName { get; set; }
[Required(ErrorMessage = "Required")]
[Display(Name = "City Name")]
[InputSize("medium")]
-3
View File
@@ -64,9 +64,6 @@
@Html.DisplayFor(model => model.LogType)
@Html.HiddenFor(model => model.LogType.Value)
@Html.DisplayFor(model => model.EmployeeName)
@Html.HiddenFor(model => model.EmployeeName)
@Html.DisplayFor(model => model.CityName)
@Html.HiddenFor(model => model.CityName)
+8
View File
@@ -144,6 +144,14 @@
<Compile Include="Migrations\201301031939259_AddLogUser.Designer.cs">
<DependentUpon>201301031939259_AddLogUser.cs</DependentUpon>
</Compile>
<Compile Include="Migrations\201301061905425_UpdateLogUserRequired.cs" />
<Compile Include="Migrations\201301061905425_UpdateLogUserRequired.Designer.cs">
<DependentUpon>201301061905425_UpdateLogUserRequired.cs</DependentUpon>
</Compile>
<Compile Include="Migrations\201301061929006_DropLogEmployeeName.cs" />
<Compile Include="Migrations\201301061929006_DropLogEmployeeName.Designer.cs">
<DependentUpon>201301061929006_DropLogEmployeeName.cs</DependentUpon>
</Compile>
<Compile Include="Migrations\Configuration.cs" />
<Compile Include="ViewModels\Account\ResetPasswordViewModel.cs" />
<Compile Include="Models\Role.cs" />