Read drive offsets from local file also.

This commit is contained in:
2020-01-03 00:48:01 +00:00
parent 1495a4d63e
commit d4eb647142

View File

@@ -35,6 +35,7 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Text.Json;
using DiscImageChef.Server.Models;
using HtmlAgilityPack;
using Microsoft.EntityFrameworkCore;
@@ -467,6 +468,54 @@ namespace DiscImageChef.Server.Task
end = DateTime.UtcNow;
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);
start = DateTime.UtcNow;
ctx.SaveChanges();