aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs29
1 files changed, 28 insertions, 1 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
index ea4234fd8..b0315e633 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
@@ -11,10 +11,13 @@ using Tango.MachineStudio.Common.Navigation;
using GalaSoft.MvvmLight.Ioc;
using System.Reflection;
using System.Collections;
+using Tango.Integration.Services;
+using Tango.Core;
+using Tango.Logging;
namespace Tango.MachineStudio.UI.StudioApplication
{
- public class DefaultStudioApplicationManager : IStudioApplicationManager
+ public class DefaultStudioApplicationManager : ExtendedObject, IStudioApplicationManager
{
private INavigationManager _navigationManager;
@@ -25,6 +28,19 @@ namespace Tango.MachineStudio.UI.StudioApplication
public bool IsShuttingDown { get; private set; }
+ private IExternalBridgeClient _connectedMachine;
+
+ public IExternalBridgeClient ConnectedMachine
+ {
+ get { return _connectedMachine; }
+ set { _connectedMachine = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(IsMachineConnected)); }
+ }
+
+ public bool IsMachineConnected
+ {
+ get { return ConnectedMachine != null; }
+ }
+
public async void ShutDown()
{
if (IsShuttingDown) return;
@@ -33,6 +49,17 @@ namespace Tango.MachineStudio.UI.StudioApplication
await Task.Factory.StartNew(async () =>
{
+ try
+ {
+ if (ConnectedMachine != null)
+ {
+ ConnectedMachine.Disconnect().Wait();
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error disconnecting from machine.");
+ }
//Do Shutdown Procedures...
foreach (var vm in ServiceLocator.Current.GetAllInstancesByBase<IShutdownRequestBlocker>())