diff --git a/Common/Hardware/WaterMeter/eRegister/Common.Hardware.WaterMeter.eRegister/Eregister.cs b/Common/Hardware/WaterMeter/eRegister/Common.Hardware.WaterMeter.eRegister/Eregister.cs index 7e44ee7a..0e3dee19 100644 --- a/Common/Hardware/WaterMeter/eRegister/Common.Hardware.WaterMeter.eRegister/Eregister.cs +++ b/Common/Hardware/WaterMeter/eRegister/Common.Hardware.WaterMeter.eRegister/Eregister.cs @@ -18,7 +18,7 @@ { const string SENSUS_STANDARD = "E6C88800DEB868C0D6A84880CE982840"; - private readonly ConcurrentQueue runningTasks; + private readonly ICollection runningTasks; private readonly EregisterProgrammingParameters parameters; private readonly EregisterHistory history; private readonly EregisterState state; @@ -36,14 +36,10 @@ this.sirtHub = sirtHub; this.state = new EregisterState(); this.history = new EregisterHistory(); - this.runningTasks = new ConcurrentQueue(); + this.runningTasks = new List(); } - public void Clear() - { - // Just clear the queue - while (this.runningTasks.TryDequeue(out var _)) ; - } + public void Clear() => this.runningTasks.Clear(); internal IEnumerable LoadInspectionInitializationTasks() { @@ -62,7 +58,7 @@ if (this.runningTasks.Any()) { - this.runningTasks.Enqueue(new EregisterChangeMeterTypeTask(features.Frequency) + this.runningTasks.Add(new EregisterChangeMeterTypeTask(features.Frequency) { SlotNr = features.SlotNr, PoNr = features.PoNr, @@ -90,7 +86,7 @@ if (this.parameters.StatusFertigung == 30) { - this.runningTasks.Enqueue(new EregisterCheckFinalizationTask(this.parameters, features.Frequency) + this.runningTasks.Add(new EregisterCheckFinalizationTask(this.parameters, features.Frequency) { WakeUpModul = true, SlotNr = features.SlotNr, @@ -102,7 +98,7 @@ EncryptionKeyII = SENSUS_STANDARD.GetEncryptionKey(), }); - this.runningTasks.Enqueue(new EregisterTask(this.parameters.Frequency) + this.runningTasks.Add(new EregisterTask(this.parameters.Frequency) { Name = "0, 2, 16", SlotNr = features.SlotNr, @@ -132,13 +128,14 @@ this.history.SerienNr = this.parameters.SerienNr; this.history.Adresse = this.parameters.Adresse; this.history.TempAdresse = this.parameters.TempAdresse; - + + var tasks = new ConcurrentQueue(this.runningTasks); var factoryState = FactoryState.Production; var lat = default(LAT); var debug = default(DEBUG); var semi = default(SEMI); - while (!cancellationToken.IsCancellationRequested && this.runningTasks.TryDequeue(out var task)) + while (!cancellationToken.IsCancellationRequested && tasks.TryDequeue(out var task)) { task.MessageReceived += this.history.Push; @@ -246,7 +243,7 @@ var frequency = this.parameters.Frequency; - this.runningTasks.Enqueue(new EregisterTask(frequency) + this.runningTasks.Add(new EregisterTask(frequency) { Name = "WUP", WakeUpCmd = true, @@ -265,7 +262,7 @@ Timeout = 10_000 }); - this.runningTasks.Enqueue(new EregisterCheckInitializationTask(this.parameters, frequency) + this.runningTasks.Add(new EregisterCheckInitializationTask(this.parameters, frequency) { SlotNr = features.SlotNr, PoNr = features.PoNr, @@ -278,7 +275,7 @@ foreach (var pam in features.BuildPams()) { - this.runningTasks.Enqueue(new EregisterTask(frequency) + this.runningTasks.Add(new EregisterTask(frequency) { SlotNr = features.SlotNr, PoNr = features.PoNr, diff --git a/Common/Ui/Common.UI/Models/AuftragDbContext.cs b/Common/Ui/Common.UI/Models/AuftragDbContext.cs index 2c773076..bcbedbfb 100644 --- a/Common/Ui/Common.UI/Models/AuftragDbContext.cs +++ b/Common/Ui/Common.UI/Models/AuftragDbContext.cs @@ -80,7 +80,7 @@ } } - internal class Eregister_Shared + internal class eRegister_Shared { internal static List LoadActions(int sharedId) => sqlConnection.LoadActions(sharedId); @@ -122,42 +122,5 @@ return xmlDeserialized as EregisterProgrammingParametersList ?? new EregisterProgrammingParametersList(); } - - internal static EregisterProgrammingParametersList LoadEregisterProgrammingParametersListForSerialNr(int serialNr) - { - var xmlList = sqlConnection - .CreateCommand($@" - SELECT CAST((SELECT ersh.P2000_Shared_Id - , ersh.Slotno - , erpp.* - FROM eRegister_Shared AS ersh - JOIN VieweRegisterProgrammingParameters AS erpp - ON ersh.Serialno = erpp.SerienNr - WHERE ersh.Serialno = @{nameof(serialNr)} - AND ersh.Completed = 0 - FOR XML PATH('{nameof(EregisterProgrammingParameters)}') - , ROOT('{nameof(EregisterProgrammingParametersList)}')) - AS XML)") - .SetParameter(nameof(serialNr), serialNr) - .FirstOrDefault(x => x.GetValue(0)); - var xmlDeserialized = default(object); - - if (!string.IsNullOrWhiteSpace(xmlList)) - { - var xmlSerializer = new XmlSerializer(typeof(EregisterProgrammingParametersList)); - var xmlReader = new StringReader(xmlList); - - try - { - xmlDeserialized = xmlSerializer.Deserialize(xmlReader); - } - catch (Exception e) - { - AppHost.NLogger.Error(e.ToString()); - } - } - - return xmlDeserialized as EregisterProgrammingParametersList ?? new EregisterProgrammingParametersList(); - } } }