blob: 40479895db32479ec47dbcc1a221e2db0194a725 (
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL;
using Tango.BL.Entities;
using Tango.Core.Commands;
using Tango.MachineStudio.Common.Diagnostics;
using Tango.MachineStudio.Common.Notifications;
using Tango.MachineStudio.Common.StudioApplication;
using Tango.SharedUI;
using System.Data.Entity;
namespace Tango.MachineStudio.UI.ViewModels
{
public class ConnectedMachineViewVM : DialogViewVM
{
public enum ConnectedMachineVMResult
{
Cancel,
Disconnect,
UploadHardwareConfig,
Reset,
TurnOffHeaters
}
private IStudioApplicationManager _applicationManager;
public IStudioApplicationManager ApplicationManager
{
get { return _applicationManager; }
set { _applicationManager = value; RaisePropertyChangedAuto(); }
}
public ConnectedMachineVMResult Result { get; set; }
private IDiagnosticsFrameProvider _diagnosticsFrameProvider;
public IDiagnosticsFrameProvider DiagnosticsFrameProvider
{
get { return _diagnosticsFrameProvider; }
set { _diagnosticsFrameProvider = value; RaisePropertyChangedAuto(); }
}
private String _totalMachineWorkTime;
public String TotalMachineWorkTime
{
get { return _totalMachineWorkTime; }
set { _totalMachineWorkTime = value; RaisePropertyChangedAuto(); }
}
private String _totalMachineMeters;
public String TotalMachineMeters
{
get { return _totalMachineMeters; }
set { _totalMachineMeters = value; RaisePropertyChangedAuto(); }
}
public RelayCommand DisconnectCommand { get; set; }
public RelayCommand UploadHardwareConfigurationCommand { get; set; }
public RelayCommand ResetCommand { get; set; }
public RelayCommand TurnOffHeatersCommand { get; set; }
public ConnectedMachineViewVM(IStudioApplicationManager application, IDiagnosticsFrameProvider frameProvider)
{
ApplicationManager = application;
DisconnectCommand = new RelayCommand(() => AcceptResult(ConnectedMachineVMResult.Disconnect));
UploadHardwareConfigurationCommand = new RelayCommand(() => AcceptResult(ConnectedMachineVMResult.UploadHardwareConfig));
ResetCommand = new RelayCommand(() => AcceptResult(ConnectedMachineVMResult.Reset));
TurnOffHeatersCommand = new RelayCommand(() => AcceptResult(ConnectedMachineVMResult.TurnOffHeaters));
DiagnosticsFrameProvider = frameProvider;
}
private void AcceptResult(ConnectedMachineVMResult result)
{
Result = result;
Accept();
}
public override void OnShow()
{
base.OnShow();
LoadMachineCounters();
}
private async void LoadMachineCounters()
{
try
{
TotalMachineMeters = "loading...";
TotalMachineWorkTime = "loading...";
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
var jobRuns = await db.JobRuns.Where(x => x.MachineGuid == ApplicationManager.Machine.Guid).ToListAsync();
TotalMachineWorkTime = TimeSpan.FromHours(jobRuns.Select(x => x.EndDate - x.StartDate).Sum(x => x.TotalHours)).ToString(@"hh\:mm\:ss");
int meters = (int)jobRuns.Select(x => x.EndPosition).Sum();
TotalMachineMeters = $"{meters.ToString("N0")} meters";
}
}
catch (Exception ex)
{
LogManager.Log(ex, "Error loading machine counters.");
TotalMachineMeters = "error!";
TotalMachineWorkTime = "error!";
}
}
}
}
|