using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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;
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(); }
}
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();
}
}
}