namespace Common.UI.ViewModels { using Common.Hardware.SIRT; using Common.UI.Infrastructure; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Threading.Tasks; public class ManualProgrammingVM : VM { public ManualProgrammingVM() { this.Messages = new SortedDictionary(); } public SortedDictionary Messages { get; } internal override void ViewModel_Loaded(object _) { AppHost.SIRTHub.MessageReceived += SirtHub_MessageReceived; foreach (Match match in Regex.Matches(Appsettings.GetSetting("SIRTComPorts"), "[cC][oO][mM][0-9]+")) { if (match.Success) { Task.Run(() => AppHost.SIRTHub.TryOpen(match.Value.ToUpper(), out var _1, out var _2)); } } } protected override void ViewModel_Dispose() { AppHost.SIRTHub.MessageReceived -= SirtHub_MessageReceived; } private void SirtHub_MessageReceived(SIRTMessage message) { this.Messages[message.Address] = message; this.NotifyPropertyChanged(nameof(this.Messages)); } } }