mirror of
https://github.com/aaru-dps/Aaru.Server.git
synced 2025-12-16 19:24:27 +00:00
Read drive offsets from local file also.
This commit is contained in:
@@ -35,6 +35,7 @@ using System.Diagnostics;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Text.Json;
|
||||||
using DiscImageChef.Server.Models;
|
using DiscImageChef.Server.Models;
|
||||||
using HtmlAgilityPack;
|
using HtmlAgilityPack;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
@@ -467,6 +468,54 @@ namespace DiscImageChef.Server.Task
|
|||||||
end = DateTime.UtcNow;
|
end = DateTime.UtcNow;
|
||||||
System.Console.WriteLine("{0}: Took {1:F2} seconds", end, (end - start).TotalSeconds);
|
System.Console.WriteLine("{0}: Took {1:F2} seconds", end, (end - start).TotalSeconds);
|
||||||
|
|
||||||
|
if(File.Exists("drive_offsets.json"))
|
||||||
|
{
|
||||||
|
var sr = new StreamReader("drive_offsets.json");
|
||||||
|
|
||||||
|
var offsets = JsonSerializer.Deserialize<CompactDiscOffset[]>(sr.ReadToEnd());
|
||||||
|
|
||||||
|
if(offsets != null)
|
||||||
|
{
|
||||||
|
foreach(var offset in offsets)
|
||||||
|
{
|
||||||
|
CompactDiscOffset cdOffset =
|
||||||
|
ctx.CdOffsets.FirstOrDefault(o => o.Manufacturer == offset.Manufacturer && o.Model == offset.Model);
|
||||||
|
if(cdOffset is null)
|
||||||
|
{
|
||||||
|
offset.ModifiedWhen = DateTime.UtcNow;
|
||||||
|
|
||||||
|
ctx.CdOffsets.Add(offset);
|
||||||
|
addedOffsets++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(Math.Abs(cdOffset.Agreement - offset.Agreement) > 0 || offset.Agreement < 0)
|
||||||
|
{
|
||||||
|
cdOffset.Agreement = offset.Agreement;
|
||||||
|
cdOffset.ModifiedWhen = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cdOffset.Offset != offset.Offset)
|
||||||
|
{
|
||||||
|
cdOffset.Offset = offset.Offset;
|
||||||
|
cdOffset.ModifiedWhen = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cdOffset.Submissions != offset.Submissions)
|
||||||
|
{
|
||||||
|
cdOffset.Submissions = offset.Submissions;
|
||||||
|
cdOffset.ModifiedWhen = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Math.Abs(cdOffset.Agreement - offset.Agreement) > 0 ||
|
||||||
|
cdOffset.Offset != offset.Offset ||
|
||||||
|
cdOffset.Submissions != offset.Submissions)
|
||||||
|
modifiedOffsets++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
System.Console.WriteLine("{0}: Committing changes...", DateTime.UtcNow);
|
System.Console.WriteLine("{0}: Committing changes...", DateTime.UtcNow);
|
||||||
start = DateTime.UtcNow;
|
start = DateTime.UtcNow;
|
||||||
ctx.SaveChanges();
|
ctx.SaveChanges();
|
||||||
|
|||||||
Reference in New Issue
Block a user