From 9e7f301df8d5114249d74aaceddff801170d3e44 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Tue, 21 Aug 2018 16:21:23 +0300 Subject: Logging module working OK. --- .../ViewModels/EventsViewVM.cs | 75 ++++++++++++---------- 1 file changed, 40 insertions(+), 35 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventsViewVM.cs index f9d803aed..20eba4b8e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventsViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventsViewVM.cs @@ -14,6 +14,7 @@ using Tango.MachineStudio.Common.StudioApplication; using Tango.MachineStudio.Logging.Navigation; using Tango.MachineStudio.Logging.Views; using Tango.SharedUI; +using System.Data.Entity; namespace Tango.MachineStudio.Logging.ViewModels { @@ -23,15 +24,22 @@ namespace Tango.MachineStudio.Logging.ViewModels private IStudioApplicationManager _application; private IEventLogger _eventLogger; private ObservableCollection _realTimeEvents; - private Machine _connectedMachine; private LoggingNavigationManager _navigation; private bool _dialog_shown; + private ObservablesContext _db; + private List _history_events; private Machine _selectedMachine; public Machine SelectedMachine { get { return _selectedMachine; } - set { _selectedMachine = value; RaisePropertyChangedAuto(); OnSelectedMachineChanged(); } + set + { + if (_selectedMachine != value) + { + _selectedMachine = value; RaisePropertyChangedAuto(); OnSelectedMachineChanged(); + } + } } private ObservableCollection _events; @@ -76,7 +84,6 @@ namespace Tango.MachineStudio.Logging.ViewModels set { _maxDate = value; RaisePropertyChangedAuto(); } } - private bool _isRealTime; public bool IsRealTime { @@ -109,25 +116,11 @@ namespace Tango.MachineStudio.Logging.ViewModels _realTimeEvents = new ObservableCollection(); _eventLogger.NewLog += _eventLogger_NewLog; - RegisterMessage(OnMachineConnectionChanged); DisplayTimelineCommand = new RelayCommand(DisplayTimeline); NavigateToEventsCommand = new RelayCommand(() => _navigation.NavigateTo(LoggingNavigationView.EventsView)); NavigateToHomeCommand = new RelayCommand(() => _navigation.NavigateTo(LoggingNavigationView.HomeView)); } - private void OnMachineConnectionChanged(MachineConnectionChangedMessage msg) - { - if (msg.Machine != null) - { - _connectedMachine = ObservablesStaticCollections.Instance.Machines.SingleOrDefault(x => x.SerialNumber == msg.Machine.SerialNumber); - SelectedMachine = _connectedMachine; - } - else - { - _connectedMachine = null; - } - } - private void _eventLogger_NewLog(object sender, MachinesEvent machineEvent) { InvokeUI(() => @@ -136,29 +129,41 @@ namespace Tango.MachineStudio.Logging.ViewModels }); } - private void OnSelectedMachineChanged() + private async void OnSelectedMachineChanged() { if (SelectedMachine != null) { - Dates = new ObservableCollection(); - - if (SelectedMachine == _connectedMachine) + using (_notification.PushTaskItem("Loading machine events...")) { - IsRealTime = true; - } + await Task.Factory.StartNew(() => + { + _db = ObservablesContext.CreateDefault(); + _db.Configuration.LazyLoadingEnabled = false; - foreach (var day in SelectedMachine.MachinesEvents.GroupBy(x => x.DateTime.DayOfYear).Select(x => x.First().DateTime).OrderByDescending(x => x)) - { - Dates.Add(day); - } + _db.EventTypes.Load(); + _db.EventTypesCategories.Load(); + _db.EventTypesGroups.Load(); - if (Dates.Count > 0) - { - MinDate = Dates.Min(); - MaxDate = Dates.Max(); - } + DateTime now = DateTime.UtcNow.AddMonths(-1); - SelectedDate = Dates.FirstOrDefault(); + _history_events = _db.MachinesEvents.Where(x => x.MachineGuid == SelectedMachine.Guid && x.DateTime > now).ToList(); + + Dates = new ObservableCollection(); + + foreach (var day in _history_events.GroupBy(x => x.DateTime.DayOfYear).Select(x => x.First().DateTime).OrderByDescending(x => x)) + { + Dates.Add(day); + } + + if (Dates.Count > 0) + { + MinDate = Dates.Min(); + MaxDate = Dates.Max(); + } + + SelectedDate = Dates.FirstOrDefault(); + }); + } } } @@ -170,9 +175,9 @@ namespace Tango.MachineStudio.Logging.ViewModels { Events = _realTimeEvents; } - else + else if (_history_events != null) { - Events = SelectedMachine.MachinesEvents.Where(x => x.DateTime.DayOfYear == SelectedDate.Date.DayOfYear).OrderByDescending(x => x.DateTime).ToObservableCollection(); + Events = _history_events.Where(x => x.DateTime.DayOfYear == SelectedDate.Date.DayOfYear).OrderByDescending(x => x.DateTime).ToObservableCollection(); } } } -- cgit v1.3.1