From fa53cf658d60afbcfb0449eb525da5a847075aa9 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 25 Mar 2018 16:26:36 +0300 Subject: Working on logging module. --- .../ViewModels/DateVM.cs | 22 +++++ .../ViewModels/MainViewVM.cs | 109 +++++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/DateVM.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/DateVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/DateVM.cs new file mode 100644 index 000000000..fd03d6328 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/DateVM.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; + +namespace Tango.MachineStudio.Logging.ViewModels +{ + public class DateVM : ExtendedObject + { + public DateTime Date { get; set; } + + public String Description { get; set; } + + public DateVM(DateTime date) + { + Date = date; + Description = date.ToLocalTime().ToShortDateString(); + } + } +} 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 new file mode 100644 index 000000000..94765ccdb --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using Tango.MachineStudio.Common.EventLogging; +using Tango.MachineStudio.Common.Notifications; +using Tango.SharedUI; + +namespace Tango.MachineStudio.Logging.ViewModels +{ + public class MainViewVM : ViewModel + { + private INotificationProvider _notification; + private IEventLogger _eventLogger; + private DateVM _realTimeDate; + private ObservableCollection _realTimeEvents; + + private Machine _selectedMachine; + public Machine SelectedMachine + { + get { return _selectedMachine; } + set { _selectedMachine = value; RaisePropertyChangedAuto(); OnSelectedMachineChanged(); } + } + + private ObservableCollection _events; + public ObservableCollection Events + { + get { return _events; } + set { _events = value; RaisePropertyChangedAuto(); } + } + + private MachinesEvent _selectedEvent; + public MachinesEvent SelectedEvent + { + get { return _selectedEvent; } + set { _selectedEvent = value; RaisePropertyChangedAuto(); OnSelectedEventChanged(); } + } + + private ObservableCollection _dates; + public ObservableCollection Dates + { + get { return _dates; } + set { _dates = value; RaisePropertyChangedAuto(); } + } + + private DateVM _selectedDate; + public DateVM SelectedDate + { + get { return _selectedDate; } + set { _selectedDate = value; RaisePropertyChangedAuto(); OnSelectedDateChanged(); } + } + + public MainViewVM(INotificationProvider notification, IEventLogger eventLogger) + { + _notification = notification; + _eventLogger = eventLogger; + _realTimeDate = new DateVM(DateTime.Now) { Description = "Real Time" }; + _realTimeEvents = new ObservableCollection(); + _eventLogger.NewLog += _eventLogger_NewLog; + } + + private void _eventLogger_NewLog(object sender, MachinesEvent machineEvent) + { + _realTimeEvents.Add(machineEvent); + } + + private void OnSelectedMachineChanged() + { + if (SelectedMachine != null) + { + Dates = new ObservableCollection(); + 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(); + } + } + + private void OnSelectedDateChanged() + { + if (SelectedDate != null) + { + if (SelectedDate == _realTimeDate) + { + Events = _realTimeEvents; + } + else + { + Events = SelectedMachine.MachinesEvents.Where(x => x.DateTime.DayOfYear == SelectedDate.Date.DayOfYear).OrderByDescending(x => x.DateTime).ToObservableCollection(); + } + } + } + + private void OnSelectedEventChanged() + { + if (SelectedEvent != null) + { + _notification.ShowInfo(SelectedEvent.Description); + } + } + } +} -- cgit v1.3.1