diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs | 39 |
1 files changed, 34 insertions, 5 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs index 94765ccdb..2b773c1c2 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs @@ -1,12 +1,16 @@ -using System; +using GalaSoft.MvvmLight.Messaging; +using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.BL; using Tango.BL.Entities; using Tango.MachineStudio.Common.EventLogging; +using Tango.MachineStudio.Common.Messages; using Tango.MachineStudio.Common.Notifications; +using Tango.MachineStudio.Common.StudioApplication; using Tango.SharedUI; namespace Tango.MachineStudio.Logging.ViewModels @@ -14,9 +18,11 @@ namespace Tango.MachineStudio.Logging.ViewModels public class MainViewVM : ViewModel { private INotificationProvider _notification; + private IStudioApplicationManager _application; private IEventLogger _eventLogger; private DateVM _realTimeDate; private ObservableCollection<MachinesEvent> _realTimeEvents; + private Machine _connectedMachine; private Machine _selectedMachine; public Machine SelectedMachine @@ -53,18 +59,37 @@ namespace Tango.MachineStudio.Logging.ViewModels set { _selectedDate = value; RaisePropertyChangedAuto(); OnSelectedDateChanged(); } } - public MainViewVM(INotificationProvider notification, IEventLogger eventLogger) + public MainViewVM(INotificationProvider notification, IEventLogger eventLogger, IStudioApplicationManager application) { + _application = application; _notification = notification; _eventLogger = eventLogger; _realTimeDate = new DateVM(DateTime.Now) { Description = "Real Time" }; _realTimeEvents = new ObservableCollection<MachinesEvent>(); _eventLogger.NewLog += _eventLogger_NewLog; + + RegisterMessage<MachineConnectionChangedMessage>(OnMachineConnectionChanged); + } + + private void OnMachineConnectionChanged(MachineConnectionChangedMessage msg) + { + if (msg.Machine != null) + { + _connectedMachine = ObservablesEntitiesAdapter.Instance.Machines.SingleOrDefault(x => x.SerialNumber == msg.Machine.SerialNumber); + SelectedMachine = _connectedMachine; + } + else + { + _connectedMachine = null; + } } private void _eventLogger_NewLog(object sender, MachinesEvent machineEvent) { - _realTimeEvents.Add(machineEvent); + InvokeUI(() => + { + _realTimeEvents.Add(machineEvent); + }); } private void OnSelectedMachineChanged() @@ -72,14 +97,18 @@ namespace Tango.MachineStudio.Logging.ViewModels if (SelectedMachine != null) { Dates = new ObservableCollection<DateVM>(); - Dates.Add(_realTimeDate); + + if (SelectedMachine == _connectedMachine) + { + Dates.Add(_realTimeDate); + } foreach (var day in SelectedMachine.MachinesEvents.GroupBy(x => x.DateTime.DayOfYear).Select(x => x.First().DateTime).OrderByDescending(x => x)) { Dates.Add(new DateVM(day)); } - SelectedDate = Dates.First(); + SelectedDate = Dates.FirstOrDefault(); } } |
