Store CompactDisc read offsets in database.

This commit is contained in:
2018-12-25 03:04:57 +00:00
parent b1287f8e2c
commit f6c2b087a2
18 changed files with 1791 additions and 14 deletions

View File

@@ -225,7 +225,12 @@
<Compile Include="Migrations\201812241719441_FixUsbIdsAndIndexes.Designer.cs">
<DependentUpon>201812241719441_FixUsbIdsAndIndexes.cs</DependentUpon>
</Compile>
<Compile Include="Migrations\201812250223002_AddCdOffsets.cs" />
<Compile Include="Migrations\201812250223002_AddCdOffsets.Designer.cs">
<DependentUpon>201812250223002_AddCdOffsets.cs</DependentUpon>
</Compile>
<Compile Include="Migrations\Configuration.cs" />
<Compile Include="Models\CdOffset.cs" />
<Compile Include="Models\Command.cs" />
<Compile Include="Models\Context.cs" />
<Compile Include="Models\Device.cs" />
@@ -331,6 +336,9 @@
<EmbeddedResource Include="Migrations\201812241719441_FixUsbIdsAndIndexes.resx">
<DependentUpon>201812241719441_FixUsbIdsAndIndexes.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Migrations\201812250223002_AddCdOffsets.resx">
<DependentUpon>201812250223002_AddCdOffsets.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>

View File

@@ -0,0 +1,29 @@
// <auto-generated />
namespace DiscImageChef.Server.Migrations
{
using System.CodeDom.Compiler;
using System.Data.Entity.Migrations;
using System.Data.Entity.Migrations.Infrastructure;
using System.Resources;
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
public sealed partial class AddCdOffsets : IMigrationMetadata
{
private readonly ResourceManager Resources = new ResourceManager(typeof(AddCdOffsets));
string IMigrationMetadata.Id
{
get { return "201812250223002_AddCdOffsets"; }
}
string IMigrationMetadata.Source
{
get { return null; }
}
string IMigrationMetadata.Target
{
get { return Resources.GetString("Target"); }
}
}
}

View File

@@ -0,0 +1,40 @@
using System.Data.Entity.Migrations;
namespace DiscImageChef.Server.Migrations
{
public partial class AddCdOffsets : DbMigration
{
public override void Up()
{
CreateTable("dbo.CompactDiscOffsets",
c => new
{
Id = c.Int(false, true),
AddedWhen = c.DateTime(false, 0),
ModifiedWhen = c.DateTime(false, 0),
Manufacturer = c.String(unicode: false),
Model = c.String(unicode: false),
Offset = c.Short(false),
Submissions = c.Int(false),
Agreement = c.Single(false)
}).PrimaryKey(t => t.Id).Index(t => t.ModifiedWhen);
AddColumn("dbo.Devices", "ModifiedWhen", c => c.DateTime(precision: 0));
AddColumn("dbo.Devices", "CdOffset_Id", c => c.Int());
CreateIndex("dbo.Devices", "ModifiedWhen");
CreateIndex("dbo.Devices", "CdOffset_Id");
AddForeignKey("dbo.Devices", "CdOffset_Id", "dbo.CompactDiscOffsets", "Id");
}
public override void Down()
{
DropForeignKey("dbo.Devices", "CdOffset_Id", "dbo.CompactDiscOffsets");
DropIndex("dbo.Devices", new[] {"CdOffset_Id"});
DropIndex("dbo.Devices", new[] {"ModifiedWhen"});
DropIndex("dbo.CompactDiscOffsets", new[] {"ModifiedWhen"});
DropColumn("dbo.Devices", "CdOffset_Id");
DropColumn("dbo.Devices", "ModifiedWhen");
DropTable("dbo.CompactDiscOffsets");
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using DiscImageChef.CommonTypes.Metadata;
namespace DiscImageChef.Server.Models
{
public class CompactDiscOffset : CdOffset
{
public CompactDiscOffset() { }
public CompactDiscOffset(string manufacturer, string model, short offset, int submissions, float agreement)
{
Manufacturer = manufacturer;
Model = model;
Offset = offset;
Submissions = submissions;
Agreement = agreement;
AddedWhen = ModifiedWhen = DateTime.UtcNow;
}
public int Id { get; set; }
public DateTime AddedWhen { get; set; }
[Index]
public DateTime ModifiedWhen { get; set; }
public virtual ICollection<Device> Devices { get; set; }
}
}

View File

@@ -38,18 +38,19 @@ namespace DiscImageChef.Server.Models
[DbConfigurationType(typeof(MySqlEFConfiguration))]
public sealed class DicServerContext : DbContext
{
public DbSet<Device> Devices { get; set; }
public DbSet<UploadedReport> Reports { get; set; }
public DbSet<Command> Commands { get; set; }
public DbSet<DeviceStat> DeviceStats { get; set; }
public DbSet<Filesystem> Filesystems { get; set; }
public DbSet<Filter> Filters { get; set; }
public DbSet<Media> Medias { get; set; }
public DbSet<MediaFormat> MediaFormats { get; set; }
public DbSet<OperatingSystem> OperatingSystems { get; set; }
public DbSet<Partition> Partitions { get; set; }
public DbSet<Version> Versions { get; set; }
public DbSet<UsbVendor> UsbVendors { get; set; }
public DbSet<UsbProduct> UsbProducts { get; set; }
public DbSet<Device> Devices { get; set; }
public DbSet<UploadedReport> Reports { get; set; }
public DbSet<Command> Commands { get; set; }
public DbSet<DeviceStat> DeviceStats { get; set; }
public DbSet<Filesystem> Filesystems { get; set; }
public DbSet<Filter> Filters { get; set; }
public DbSet<Media> Medias { get; set; }
public DbSet<MediaFormat> MediaFormats { get; set; }
public DbSet<OperatingSystem> OperatingSystems { get; set; }
public DbSet<Partition> Partitions { get; set; }
public DbSet<Version> Versions { get; set; }
public DbSet<UsbVendor> UsbVendors { get; set; }
public DbSet<UsbProduct> UsbProducts { get; set; }
public DbSet<CompactDiscOffset> CdOffsets { get; set; }
}
}

View File

@@ -1,4 +1,5 @@
using System;
using System.ComponentModel.DataAnnotations.Schema;
using DiscImageChef.CommonTypes.Metadata;
namespace DiscImageChef.Server.Models
@@ -17,6 +18,7 @@ namespace DiscImageChef.Server.Models
CompactFlash = report.CompactFlash;
FireWire = report.FireWire;
AddedWhen = DateTime.UtcNow;
ModifiedWhen = DateTime.UtcNow;
MultiMediaCard = report.MultiMediaCard;
PCMCIA = report.PCMCIA;
SCSI = report.SCSI;
@@ -29,5 +31,8 @@ namespace DiscImageChef.Server.Models
}
public DateTime AddedWhen { get; set; }
[Index]
public DateTime? ModifiedWhen { get; set; }
public virtual CompactDiscOffset CdOffset { get; set; }
}
}