Replace Log.EmployeeName with Log.User, drop from database
This commit is contained in:
@@ -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.
@@ -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
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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(); */
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 "H4sIAAAAAAAEANVd227kuBF9D5B/aPRTEmC7bWcxmB20d+FtjydGxhe4vbPIk0FL7DYxuq1EOfa35SGflF8IqSvvIiW12n5z83JYJItVxWKV/L///Hf1y0sYzJ5hmqE4Op0fL47mMxh5sY+i3ek8x9sfPs5/+fnPf1p99sOX2be63QltR3pG2en8CePk03KZeU8wBNkiRF4aZ/EWL7w4XAI/Xp4cHX1cHh8tIYGYE6zZbHWXRxiFsPhBfq7jyIMJzkFwFfswyKpyUrMpUGfXIIRZAjx4Or9CAQQ7eJ+C7zBd/A4fF6Q3hi94PjsLECAEbWCwdaTu6CdK3bwZt6ApTAL4cv+awGL4ZuSv8Y4W/p6CJIEp24f0uk1jUohfqy7fQJDD+Yy2P51fRvjvJ/PZdR4E4DEgBVsQZKR2yQ67ZMZlyz+TBcOvDDWEDGHsf8JXroAh5w5u226XPj8mHVXsK06k6maeSPLh0wbHKfwCI5gCDP1bgDFMCb9c+rCgv9qWT8kHu535aXl0QndmCaIoxgAT5pNoF5ccPiEvgC21G5wSZp7PLtAL9L/CaIefGoqvwEtd8mE++y1ChPNJF5zSXTNulDzw58i/8eMQkhm77LhyrWn3hn7Czgs177kir8kW0L9cl+bHoWvzBWS3eeo9gQw2+3Ie5wTAGeqcMFYDQf6+R6E7yDqFlD8H42xiMivX5SR/Gtaz/G0e9rcMpv+IM3zm+ynMsoOMf7YjR3rykavTfZvCZxTnmVksKQGvwTPaFZJEMan57A4GRWX2hJLq7JFBHsrKizQO7+KgPKNF2UPDAbFQcQ/SHcT2w8sz0xKjasqTJrdQEqpopiJ7tWy1j1EnFavUQynRfn20Ut2v3P8vOfKdTzCFiA4hEj+HAAWTj3pBmvfQAMcnH4eOfAuy7N9x6qqWRxiZWFThIWTVZXaWJGn83OqZX2Ny9EDUe+0uCMvkROJvELGXv4IMb3LPYxRAT3uDAAkjjKJkKe6Zh9EzERKjAX6Nve9xjkfE26HoTdkUlxmdI/RvcjyUb9idXT+BaAf9UaZaY97BDOL7+DuMRj3VbnqbqrNMqStpTaGMM1Y/tqWNsqt1IlNVq8teepDi9NGDtF8fPVj3G6AHKUQPxWCWknYGPcy8FCXl3W7fItpo/fXkItGyUjBYLy6qrLM+jMRcgl156WD3Z0LYMD1W+I7+BUE6PQ9fge8HODlrkBZzPsDIcRCPu8w2BhXnFZlsrt/QuHLJTsOmqPUrnEMPhYBsM7moeajy1BIFuvEABXQ/Kbd5ytoB003rHuyu8/ARHuCIkp+76Uc9yzK0i6CrMB1+Vq5jDKd3DK3zNCVXrU4/qJtuJja6WjVXuuqhbNAqZ7ZcUs9c5SAFTd2pfbQz7ddHNdf93oEXfnRT0or74jzCr3seVscd5KTHHioWhzGpK8ORJ/tz5M/0VmTr9C+uEbOrPMAoCZBHBj2d/01aBCVac7Np0UoXphFttWRmYZ5c4xTVESN7SFtSCo+l/bwkn2rHrI7n4hm8ic5hQCTSjPojqPpcg8wDvsxRZHP9/guicMya5mTy0g5aLINf1wx8tFgcS9hEcEEq1REI1kT84hSgCMtSDkUeSkBgRYbQ2/6lkm5JM5RYcw4TGFEZZ7XGNjSonxtkkpqRBW7qWjoH/uJ0nW7z1Yqv3fL6Srm3A6Onxo4BZc7uxX2qdXDY74F8p5r34NFHZ7FSjdHgCdIDpnyQQxleUUdWiBtMO24g5syzViuyuyuJKb5r5VaR+pZSvaNz5fiTOpdqs6Nztdaq/s0h6YAg5hhSAhR2odib2QV+CrVviWkge55EdjCaEA2hzRpJ7GQ0Gpj+FW3ioecnYzHR9g1VnqbalDAbEwyJJfsZZiiZD3uan+pZVj3bLjvBxVJwXQmDbdAB1WNZ+AuavBh6pdat1hhq28NsmLxSG/Wfcn0PaARoU7dallFrVQEN6VKGt62uQJKQKwoT7laVzDZlrNv6h417IFtYYiw9bkVFcd+MRK6KRN4LtfQu5cMLlGb0pQ08AnppWvuh1MxFXdRDMlpD3q1alNaN6d8KzcQG/i0U56ddywsyPfr8W8wU8vst95rRkEMQgFQd/7aOgzyMjPapHoNR7yyOQevrsbhgMxaNq1DiVQGGpqCzrgW3iITsWIoyLlJYTgr2UFUpSV8KtFsvVxv4xg7ZltovPB/JxqLxNfaIpSeWRSpL7BGal2ducnWhPU4tWVkY1TuoGUUKTmPhpEo33CroTESsip2PonCvU5zKjpsf5UlBzkiGuyTTpAsULx+tpKfOKuwjPlW2l4X8VHcz7Z64xuqwry6USDrHbamDAC3DrzjRWRbZY7TBVCxMW2qP1AZHsUhtqYMsqIOdOFlQF9rjsMFLLBRb7j4/fQCTat761vYja4ObON2ja+Q2Dh/sJA7A17ohc1FPIjBX6YrbRD/JqE3V9JqIi4Hi2Y+p6McFXCCUjgu4Ru58zgZGqTibrX8zOqX0FYyjU+QIqAKsS6eou+lWuw57YldYHULVhSJL8bbUwZJjI5k4g46teDP73dyax9lyZbiS1a5re05xkyrCjliUosC+PxN1xKIwxQ5YRRgRB1OUOAjgJiSIk8BNqYshUYT48GZEUWSPUd4oWYiyxMFQR8JRKgocBHIZR8PJ4LLIAaOOluFQ6kKH1WiDX7glaYtd5kW9i/y0ZH+7CaGNTGFR2lJ7pCrUhIWpihy4TQwc4fhOrHwzIrR6AhhHgMrhJAVYl/RUdzN5QkS5qY5HMW65pC9ddWUdq8HLl7Js+u3lvbyyWVS/0diaPnV7lX2je+pQmCX8u468Kk5W0YPONCrecDUuNTNh2rdNJxfAg84PoCdM9Ms7b2r7HmXpYK5aWziRFUsmvkBNv2BmstwYzN4XPmQDpfcVsUkjE5p3FuE9ZVW9bXR/U0B67Cib0IDb+Bn59KFj85phGC5og8Xmj2AdoMKhUje4AhHawqy8053O6VtM/+8RNPF2WeYHikect/EVAETn3xlp6BpsLWYfRM+A+tRTMddgeHJ+QX+/1PwH7rsOfYDETHz1NH8cJdF+G8TAnUI2QNwnf+MRcuJ64/ChTPVi/SUEL38dKXd+MCaXDz8IzZTjLvCaLXGNxihR8gj9kUNUHNIt6vyQxDvJ/3aclRou2sOh5FK9xwIVM7mVuEWe5cBE7dGAhTzsQWdEzq1+RO4yzjavupeqMGdV9xaFuqzqQYCKrOqBeEJW9cE1iCKrug/HdGRU9yZPn1Ftc/zssxTeWKryYJEtpi1rhUrfVGQHKfXeEntHMq2ZvN0+clLK2h22hWwm7jAkMbt2IBqbMTtI9bFZsMNoYjJbhwFx2ar+nrNVh5EqZaAOnXmbVToMScwUHcQjXPbnICRNRmfnPeSdJFHuxYlhpZDcExr3oYrUDml7E0DvVFbf8jSuSzu74WFk42F/N+Me+ZKtN3qSzMaZkBcwUWKWJtbQ1iUwc0z/sx7K4FKfILfPPXe0VyInh1B6pSfZdNuNGCXjs5iXzWjvNLfzgPmc04kJfSyRw5VoL8Ji2hxN00cFlK92QmJf5+cE9sQpjVkhjm/xEYK+PKMJObR1XThxi+4dv4edNDHTqF6g34gVcgimmdIecWKaqY0SdTa4nAUobp6UCq7LBC+f1E/n/mNMNri0qG1TxLUZ4ipQ69xxbeq4CtUlqdyUU67Cdkg4f9Wmm6uAlYnoqqXQLHJbpVsS5WLvIwOcpbBNP5JPhmCtCKE6kjh6Y4neXQSrjfjRJzlu2rYqVfsAO6f4UILpkwuaoCjJwBKzF0wTE48aHxM46hTrBHfjFNXhaINO3VhTdEivl8O8iB5k/sEMUcSFa7WGoP9uJoIepwGbNpfRNq61sUBR3UR8cYAY+EQ9nqUYbYGHSTV9Oy6+PVbECdEAgEfoX0Y3OU5yTKYMw8eAE8xUoZvGL74hwNO8uineqbIxpkDIRPTp8ib6NUeB39B9ofB4aSCopVC5UOleYupK3b02SNdxZAlULV9j4NzDMAkIWHYTbcAz1NPWvYb8iq3OEdilIGRXsCypg44ATTZvhyADsD3a8chPwq5++PLz/wH2YDQWUmkAAA=="; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -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")]
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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" />
|
||||
|
||||
Reference in New Issue
Block a user