blob: 8ddc544c0e2a9e840b8c90516878b4ff784883b4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core.Commands;
using Tango.Logging;
using Tango.MachineStudio.Logging.Navigation;
using Tango.MachineStudio.Logging.Parsing;
using Tango.SharedUI;
namespace Tango.MachineStudio.Logging.ViewModels
{
public class ApplicationLogsViewVM : ViewModel
{
private ApplicationLogFileParser _parser;
private List<LogFile> _logFiles;
private ObservableCollection<MessageLogItem> _logs;
public ObservableCollection<MessageLogItem> Logs
{
get { return _logs; }
set { _logs = value; RaisePropertyChangedAuto(); }
}
private ObservableCollection<DateTime> _dates;
public ObservableCollection<DateTime> Dates
{
get { return _dates; }
set { _dates = value; RaisePropertyChangedAuto(); }
}
private DateTime _selectedDate;
public DateTime SelectedDate
{
get { return _selectedDate; }
set { _selectedDate = value; RaisePropertyChangedAuto(); OnSelectedDateChanged(); }
}
private DateTime _minDate;
public DateTime MinDate
{
get { return _minDate; }
set { _minDate = value; RaisePropertyChangedAuto(); }
}
private DateTime _maxDate;
public DateTime MaxDate
{
get { return _maxDate; }
set { _maxDate = value; RaisePropertyChangedAuto(); }
}
private bool _isRealTime;
public bool IsRealTime
{
get { return _isRealTime; }
set { _isRealTime = value; RaisePropertyChangedAuto(); OnSelectedDateChanged(); }
}
public RelayCommand NavigateToHomeCommand { get; set; }
public ApplicationLogsViewVM(LoggingNavigationManager navigation)
{
NavigateToHomeCommand = new RelayCommand(() => navigation.NavigateTo(LoggingNavigationView.HomeView));
_parser = new ApplicationLogFileParser();
_logFiles = _parser.GetLogFiles();
Dates = new ObservableCollection<DateTime>(_logFiles.Select(x => x.DateTime).OrderBy(x => x));
SelectedDate = Dates.Last();
MinDate = Dates.Min();
MaxDate = Dates.Max();
}
private void OnSelectedDateChanged()
{
if (IsRealTime)
{
//Events = _realTimeEvents;
}
else
{
List<MessageLogItem> logs = new List<MessageLogItem>();
foreach (var logFile in _logFiles.Where(x => x.DateTime.Date == SelectedDate.Date))
{
logs.AddRange(_parser.Parse(logFile));
}
Logs = logs.ToObservableCollection();
}
}
}
}
|