mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Store CompactDisc read offsets in database.
This commit is contained in:
8
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
8
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
@@ -324,9 +324,12 @@
|
||||
<e p="20181224044809_StoreUsbIdsInDatabase.cs" t="Include" />
|
||||
<e p="20181224172147_FixUsbIdsAndIndexes.Designer.cs" t="Include" />
|
||||
<e p="20181224172147_FixUsbIdsAndIndexes.cs" t="Include" />
|
||||
<e p="20181225002740_AddCdOffsets.Designer.cs" t="Include" />
|
||||
<e p="20181225002740_AddCdOffsets.cs" t="Include" />
|
||||
<e p="DicContextModelSnapshot.cs" t="Include" />
|
||||
</e>
|
||||
<e p="Models" t="Include">
|
||||
<e p="CdOffset.cs" t="Include" />
|
||||
<e p="Command.cs" t="Include" />
|
||||
<e p="Device.cs" t="Include" />
|
||||
<e p="DeviceStat.cs" t="Include" />
|
||||
@@ -1821,9 +1824,13 @@
|
||||
<e p="201812241719441_FixUsbIdsAndIndexes.Designer.cs" t="Include" />
|
||||
<e p="201812241719441_FixUsbIdsAndIndexes.cs" t="Include" />
|
||||
<e p="201812241719441_FixUsbIdsAndIndexes.resx" t="Include" />
|
||||
<e p="201812250223002_AddCdOffsets.Designer.cs" t="Include" />
|
||||
<e p="201812250223002_AddCdOffsets.cs" t="Include" />
|
||||
<e p="201812250223002_AddCdOffsets.resx" t="Include" />
|
||||
<e p="Configuration.cs" t="Include" />
|
||||
</e>
|
||||
<e p="Models" t="Include">
|
||||
<e p="CdOffset.cs" t="Include" />
|
||||
<e p="Command.cs" t="Include" />
|
||||
<e p="Context.cs" t="Include" />
|
||||
<e p="Device.cs" t="Include" />
|
||||
@@ -1866,7 +1873,6 @@
|
||||
</e>
|
||||
<e p="obj" t="ExcludeRecursive" />
|
||||
<e p="packages.config" t="Include" />
|
||||
<e p="usb.ids" t="Include" />
|
||||
</e>
|
||||
<e p="DiscImageChef.Server.Task" t="IncludeRecursive">
|
||||
<e p="App.config" t="Include" />
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
<Compile Include="Interop\DetectOS.cs" />
|
||||
<Compile Include="Interop\PlatformID.cs" />
|
||||
<Compile Include="Interop\Version.cs" />
|
||||
<Compile Include="Metadata\CdOffset.cs" />
|
||||
<Compile Include="Metadata\DeviceReport.cs" />
|
||||
<Compile Include="Metadata\DeviceReportV2.cs" />
|
||||
<Compile Include="Metadata\Dimensions.cs" />
|
||||
|
||||
11
DiscImageChef.CommonTypes/Metadata/CdOffset.cs
Normal file
11
DiscImageChef.CommonTypes/Metadata/CdOffset.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace DiscImageChef.CommonTypes.Metadata
|
||||
{
|
||||
public class CdOffset
|
||||
{
|
||||
public string Manufacturer { get; set; }
|
||||
public string Model { get; set; }
|
||||
public short Offset { get; set; }
|
||||
public int Submissions { get; set; }
|
||||
public float Agreement { get; set; }
|
||||
}
|
||||
}
|
||||
2
DiscImageChef.Core/DiscImageChef.Core.csproj.DotSettings
Normal file
2
DiscImageChef.Core/DiscImageChef.Core.csproj.DotSettings
Normal file
@@ -0,0 +1,2 @@
|
||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">Experimental</s:String></wpf:ResourceDictionary>
|
||||
@@ -56,6 +56,7 @@ namespace DiscImageChef.Database
|
||||
public DbSet<Version> Versions { get; set; }
|
||||
public DbSet<UsbVendor> UsbVendors { get; set; }
|
||||
public DbSet<UsbProduct> UsbProducts { get; set; }
|
||||
public DbSet<CdOffset> CdOffsets { get; set; }
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
|
||||
@@ -84,7 +84,10 @@
|
||||
<Compile Include="Migrations\20181224044809_StoreUsbIdsInDatabase.Designer.cs" />
|
||||
<Compile Include="Migrations\20181224172147_FixUsbIdsAndIndexes.cs" />
|
||||
<Compile Include="Migrations\20181224172147_FixUsbIdsAndIndexes.Designer.cs" />
|
||||
<Compile Include="Migrations\20181225002740_AddCdOffsets.cs" />
|
||||
<Compile Include="Migrations\20181225002740_AddCdOffsets.Designer.cs" />
|
||||
<Compile Include="Migrations\DicContextModelSnapshot.cs" />
|
||||
<Compile Include="Models\CdOffset.cs" />
|
||||
<Compile Include="Models\Command.cs" />
|
||||
<Compile Include="Models\Device.cs" />
|
||||
<Compile Include="Models\DeviceStat.cs" />
|
||||
|
||||
1425
DiscImageChef.Database/Migrations/20181225002740_AddCdOffsets.Designer.cs
generated
Normal file
1425
DiscImageChef.Database/Migrations/20181225002740_AddCdOffsets.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
namespace DiscImageChef.Database.Migrations
|
||||
{
|
||||
public partial class AddCdOffsets : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateTable("CdOffsets",
|
||||
table => new
|
||||
{
|
||||
Manufacturer = table.Column<string>(nullable: true),
|
||||
Model = table.Column<string>(nullable: true),
|
||||
Offset = table.Column<short>(nullable: false),
|
||||
Submissions = table.Column<int>(nullable: false),
|
||||
Agreement = table.Column<float>(nullable: false),
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("Sqlite:Autoincrement", true),
|
||||
AddedWhen = table.Column<DateTime>(nullable: false),
|
||||
ModifiedWhen = table.Column<DateTime>(nullable: false)
|
||||
}, constraints: table => { table.PrimaryKey("PK_CdOffsets", x => x.Id); });
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable("CdOffsets");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -886,6 +886,29 @@ namespace DiscImageChef.Database.Migrations
|
||||
b.ToTable("Usb");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DiscImageChef.Database.Models.CdOffset", b =>
|
||||
{
|
||||
b.Property<int>("Id").ValueGeneratedOnAdd();
|
||||
|
||||
b.Property<DateTime>("AddedWhen");
|
||||
|
||||
b.Property<float>("Agreement");
|
||||
|
||||
b.Property<string>("Manufacturer");
|
||||
|
||||
b.Property<string>("Model");
|
||||
|
||||
b.Property<DateTime>("ModifiedWhen");
|
||||
|
||||
b.Property<short>("Offset");
|
||||
|
||||
b.Property<int>("Submissions");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("CdOffsets");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DiscImageChef.Database.Models.Command", b =>
|
||||
{
|
||||
b.Property<int>("Id").ValueGeneratedOnAdd();
|
||||
|
||||
25
DiscImageChef.Database/Models/CdOffset.cs
Normal file
25
DiscImageChef.Database/Models/CdOffset.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace DiscImageChef.Database.Models
|
||||
{
|
||||
public class CdOffset : CommonTypes.Metadata.CdOffset
|
||||
{
|
||||
public CdOffset() { }
|
||||
|
||||
public CdOffset(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; }
|
||||
}
|
||||
}
|
||||
@@ -175,6 +175,19 @@ namespace DiscImageChef.Server.Task
|
||||
#endif
|
||||
Console.WriteLine("{0}: Exception {1} filling USB IDs...", DateTime.UtcNow, ex);
|
||||
}
|
||||
|
||||
Console.WriteLine("{0}: Fixing all devices without modification time...", DateTime.UtcNow);
|
||||
start = DateTime.UtcNow;
|
||||
foreach(Device device in ctx.Devices.Where(d => d.ModifiedWhen == null))
|
||||
device.ModifiedWhen = device.AddedWhen;
|
||||
end = DateTime.UtcNow;
|
||||
Console.WriteLine("{0}: Took {1:F2} seconds", end, (end - start).TotalSeconds);
|
||||
|
||||
Console.WriteLine("{0}: Committing changes...", DateTime.UtcNow);
|
||||
start = DateTime.UtcNow;
|
||||
ctx.SaveChanges();
|
||||
end = DateTime.UtcNow;
|
||||
Console.WriteLine("{0}: Took {1:F2} seconds", end, (end - start).TotalSeconds);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
29
DiscImageChef.Server/Migrations/201812250223002_AddCdOffsets.Designer.cs
generated
Normal file
29
DiscImageChef.Server/Migrations/201812250223002_AddCdOffsets.Designer.cs
generated
Normal 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"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
28
DiscImageChef.Server/Models/CdOffset.cs
Normal file
28
DiscImageChef.Server/Models/CdOffset.cs
Normal 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; }
|
||||
}
|
||||
}
|
||||
@@ -51,5 +51,6 @@ namespace DiscImageChef.Server.Models
|
||||
public DbSet<Version> Versions { get; set; }
|
||||
public DbSet<UsbVendor> UsbVendors { get; set; }
|
||||
public DbSet<UsbProduct> UsbProducts { get; set; }
|
||||
public DbSet<CompactDiscOffset> CdOffsets { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user