aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-03-25 16:26:36 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-03-25 16:26:36 +0300
commitfa53cf658d60afbcfb0449eb525da5a847075aa9 (patch)
tree31c96d3bab8a54ebbf04be6aab14371be45aa1bb /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels
parent86197cd0ec87a6cc186e90f75d848adc6dfa2285 (diff)
downloadTango-fa53cf658d60afbcfb0449eb525da5a847075aa9.tar.gz
Tango-fa53cf658d60afbcfb0449eb525da5a847075aa9.zip
Working on logging module.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/DateVM.cs22
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs109
2 files changed, 131 insertions, 0 deletions
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<MachinesEvent> _realTimeEvents;
+
+ private Machine _selectedMachine;
+ public Machine SelectedMachine
+ {
+ get { return _selectedMachine; }
+ set { _selectedMachine = value; RaisePropertyChangedAuto(); OnSelectedMachineChanged(); }
+ }
+
+ private ObservableCollection<MachinesEvent> _events;
+ public ObservableCollection<MachinesEvent> Events
+ {
+ get { return _events; }
+ set { _events = value; RaisePropertyChangedAuto(); }
+ }
+
+ private MachinesEvent _selectedEvent;
+ public MachinesEvent SelectedEvent
+ {
+ get { return _selectedEvent; }
+ set { _selectedEvent = value; RaisePropertyChangedAuto(); OnSelectedEventChanged(); }
+ }
+
+ private ObservableCollection<DateVM> _dates;
+ public ObservableCollection<DateVM> 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<MachinesEvent>();
+ _eventLogger.NewLog += _eventLogger_NewLog;
+ }
+
+ private void _eventLogger_NewLog(object sender, MachinesEvent machineEvent)
+ {
+ _realTimeEvents.Add(machineEvent);
+ }
+
+ private void OnSelectedMachineChanged()
+ {
+ if (SelectedMachine != null)
+ {
+ Dates = new ObservableCollection<DateVM>();
+ 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);
+ }
+ }
+ }
+}