kerstbug ook in Entities controller
28dfc910aba2e8f4a83b5dabe68c70610e402435
2 files changed
src/OpenKamer.LogicControllers/EntityController.cssrc/OpenKamer.WinForm/Form1.cs
diff --git a/src/OpenKamer.LogicControllers/EntityController.cs b/src/OpenKamer.LogicControllers/EntityController.cs
index 5062fac..cb4e148 100644
--- a/src/OpenKamer.LogicControllers/EntityController.cs
+++ b/src/OpenKamer.LogicControllers/EntityController.cs
@@ -80,7 +80,7 @@ public class EntityController
do
{
- var FileName = FilesDirectory + @"\" + Token + ".xml";
+ var FileName = FilesDirectory + @"\" + this.Token + ".xml";
using StreamReader reader = new(FileName);
@@ -92,28 +92,42 @@ public class EntityController
return;
}
- var resumeNode = feed.Links.FirstOrDefault(x => x.Rel == "resume");
- if (resumeNode != null)
+ var nodeSelf = feed.Links.FirstOrDefault(x => x.Rel == "self");
+
+ if (nodeSelf == null || nodeSelf.Href == null)
+ {
+ Log("Self error, exit");
+ return;
+ }
+
+ if (this.Token != "0" && !nodeSelf.Href.EndsWith(this.Token))
+ {
+ Log("Incomplete, exit");
+ return;
+ }
+
+ var nodeResume = feed.Links.FirstOrDefault(x => x.Rel == "resume");
+ if (nodeResume != null)
{
Log("Resume (not complete) exit");
return;
}
- var nextNode = feed.Links.FirstOrDefault(x => x.Rel == "next");
- if (nextNode == null || nextNode.Href == null)
+ var nodeNext = feed.Links.FirstOrDefault(x => x.Rel == "next");
+ if (nodeNext == null || nodeNext.Href == null)
{
Log("Normal exit");
return;
}
- var intI = nextNode.Href.IndexOf("skiptoken=");
+ var intI = nodeNext.Href.IndexOf("skiptoken=");
if (intI < 0)
{
Log("Abnormal skiptoken exit");
return;
}
if (intI > 0)
- Token = nextNode.Href[(intI + 10)..];
+ Token = nodeNext.Href[(intI + 10)..];
await ProcessEntitiesAsync(feed, cancellationToken);
diff --git a/src/OpenKamer.WinForm/Form1.cs b/src/OpenKamer.WinForm/Form1.cs
index 8012b01..e80a248 100644
--- a/src/OpenKamer.WinForm/Form1.cs
+++ b/src/OpenKamer.WinForm/Form1.cs
@@ -169,7 +169,8 @@ public partial class Form1 : Form
this.lblSpeed.Text = $"{speed} e/sec";
var secondstogo = (this.entityController1.FilesTotal - this.entityController1.FilesIndex) * sw.ElapsedMilliseconds / (1 + this.entityController1.FilesIndex) / 1000;
-
+ if (secondstogo < 0)
+ secondstogo = 0;
var takes = new DateTimeOffset().AddSeconds(secondstogo);
this.lblDuration.Text = $"{takes.Hour:00}:{takes.Minute:00}:{takes.Second:00}";