diff --git a/Notes/UpdateAllVehiclePreviousLog.sql b/Notes/UpdateAllVehiclePreviousLog.sql
new file mode 100644
index 0000000..7d7e148
Binary files /dev/null and b/Notes/UpdateAllVehiclePreviousLog.sql differ
diff --git a/Web/Migrations/201212042021486_AddVehiclePreviousLog.Designer.cs b/Web/Migrations/201212042021486_AddVehiclePreviousLog.Designer.cs
new file mode 100644
index 0000000..bf8758d
--- /dev/null
+++ b/Web/Migrations/201212042021486_AddVehiclePreviousLog.Designer.cs
@@ -0,0 +1,24 @@
+//
+namespace MileageTraker.Web.Migrations
+{
+ using System.Data.Entity.Migrations;
+ using System.Data.Entity.Migrations.Infrastructure;
+
+ public sealed partial class AddVehiclePreviousLog : IMigrationMetadata
+ {
+ string IMigrationMetadata.Id
+ {
+ get { return "201212042021486_AddVehiclePreviousLog"; }
+ }
+
+ string IMigrationMetadata.Source
+ {
+ get { return null; }
+ }
+
+ string IMigrationMetadata.Target
+ {
+ get { return "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"; }
+ }
+ }
+}
diff --git a/Web/Migrations/201212042021486_AddVehiclePreviousLog.cs b/Web/Migrations/201212042021486_AddVehiclePreviousLog.cs
new file mode 100644
index 0000000..df371f3
--- /dev/null
+++ b/Web/Migrations/201212042021486_AddVehiclePreviousLog.cs
@@ -0,0 +1,45 @@
+namespace MileageTraker.Web.Migrations
+{
+ using System.Data.Entity.Migrations;
+
+ public partial class AddVehiclePreviousLog : DbMigration
+ {
+ public override void Up()
+ {
+ AddColumn("Log", "VehiclePreviousLogId", c => c.Int());
+ AddForeignKey("Log", "VehiclePreviousLogId", "Log", "LogId");
+ CreateIndex("Log", "VehiclePreviousLogId");
+ var populateSql =
+ @"WITH summary AS (
+ SELECT
+ ROW_NUMBER() OVER (PARTITION BY l.LogId ORDER BY l.LogId ASC, pl.EndOdometer DESC, pl.Created DESC) AS rk,
+ l.LogId, pl.LogId as PreviousLogId
+ FROM
+ [Log] as l,
+ [Log] as pl
+ WHERE
+ pl.VehicleId = l.VehicleId
+ AND ((pl.[Date] <= l.[Date]
+ AND pl.EndOdometer < l.EndOdometer)
+ OR (
+ pl.EndOdometer < l.EndOdometer
+ AND pl.Created < l.Created
+ ))
+ )
+ UPDATE [Log]
+ SET [Log].VehiclePreviousLogId = summary.PreviousLogId
+ FROM summary
+ WHERE summary.rk = 1
+ AND [Log].LogId = summary.LogId
+ ";
+ Sql(populateSql);
+ }
+
+ public override void Down()
+ {
+ DropIndex("Log", new[] { "VehiclePreviousLogId" });
+ DropForeignKey("Log", "VehiclePreviousLogId", "Log");
+ DropColumn("Log", "VehiclePreviousLogId");
+ }
+ }
+}
diff --git a/Web/Models/Log.cs b/Web/Models/Log.cs
index 3412fed..54ab511 100644
--- a/Web/Models/Log.cs
+++ b/Web/Models/Log.cs
@@ -70,6 +70,12 @@ namespace MileageTraker.Web.Models
[HiddenInput]
public string UserAgent { get; set; }
+ [HiddenInput]
+ public int? VehiclePreviousLogId { get; set; }
+
+ [HiddenInput]
+ public virtual Log VehiclePreviousLog { get; set; }
+
public Log()
{
LogType = new MileageLogTypeWrapper();
diff --git a/Web/Models/MileageTrakerContext.cs b/Web/Models/MileageTrakerContext.cs
index 994f121..d1a4803 100644
--- a/Web/Models/MileageTrakerContext.cs
+++ b/Web/Models/MileageTrakerContext.cs
@@ -12,6 +12,10 @@ namespace MileageTraker.Web.Models
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove();
+ modelBuilder.Entity()
+ .HasOptional(l => l.VehiclePreviousLog)
+ .WithMany()
+ .HasForeignKey(l => l.VehiclePreviousLogId);
}
}
}
\ No newline at end of file
diff --git a/Web/Web.csproj b/Web/Web.csproj
index 7bee143..b27b157 100644
--- a/Web/Web.csproj
+++ b/Web/Web.csproj
@@ -87,6 +87,10 @@
201204181847082_InitialMigration.cs
+
+
+ 201212042021486_AddVehiclePreviousLog.cs
+