diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-03-25 16:26:36 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-03-25 16:26:36 +0300 |
| commit | fa53cf658d60afbcfb0449eb525da5a847075aa9 (patch) | |
| tree | 31c96d3bab8a54ebbf04be6aab14371be45aa1bb /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs | |
| parent | 86197cd0ec87a6cc186e90f75d848adc6dfa2285 (diff) | |
| download | Tango-fa53cf658d60afbcfb0449eb525da5a847075aa9.tar.gz Tango-fa53cf658d60afbcfb0449eb525da5a847075aa9.zip | |
Working on logging module.
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 | 109 |
1 files changed, 109 insertions, 0 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 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); + } + } + } +} |
