diff options
| author | Avi Levkovich <avi@twine-s.com> | 2018-07-31 10:06:51 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2018-07-31 10:06:51 +0300 |
| commit | b6b2f9ad4c96deface6763adbb2ac533e9706d1b (patch) | |
| tree | 732a7ce2f629ab4cd9a1bfc1bec79adf97185025 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels | |
| parent | 90b65a54cd28ee8b0d908c86795a7096c4073e83 (diff) | |
| parent | c728eba7cf217972c47e0a65afcb1975f6d6f6f1 (diff) | |
| download | Tango-b6b2f9ad4c96deface6763adbb2ac533e9706d1b.tar.gz Tango-b6b2f9ad4c96deface6763adbb2ac533e9706d1b.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels')
5 files changed, 46 insertions, 5 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/AboutViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/AboutViewVM.cs index 5fe3b06b8..0b8a205f7 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/AboutViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/AboutViewVM.cs @@ -3,7 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.Core; using Tango.MachineStudio.Common.StudioApplication; +using Tango.Settings; using Tango.SharedUI; namespace Tango.MachineStudio.UI.ViewModels @@ -12,9 +14,12 @@ namespace Tango.MachineStudio.UI.ViewModels { public IStudioApplicationManager ApplicationManager { get; set; } + public CoreSettings Settings { get; set; } + public AboutViewVM(IStudioApplicationManager applicationManager) { ApplicationManager = applicationManager; + Settings = SettingsManager.Default.GetOrCreate<CoreSettings>(); } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ConnectedMachineViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ConnectedMachineViewVM.cs index 8034ceb69..35a4b0e9d 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ConnectedMachineViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ConnectedMachineViewVM.cs @@ -5,6 +5,7 @@ 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; @@ -30,18 +31,28 @@ namespace Tango.MachineStudio.UI.ViewModels 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 ConnectedMachineViewVM(IStudioApplicationManager application) + public ConnectedMachineViewVM(IStudioApplicationManager application, IDiagnosticsFrameProvider frameProvider) { ApplicationManager = application; DisconnectCommand = new RelayCommand(Disconnect); UploadHardwareConfigurationCommand = new RelayCommand(UploadHardwareConfiguration); ResetCommand = new RelayCommand(Reset); + + DiagnosticsFrameProvider = frameProvider; } private void Reset() diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs index 26be2d16b..a7750b39c 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs @@ -19,6 +19,8 @@ using Tango.MachineStudio.UI.TFS; using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.Update; using Tango.Core.DI; +using Tango.Settings; +using Tango.Core; namespace Tango.MachineStudio.UI.ViewModels { @@ -37,13 +39,19 @@ namespace Tango.MachineStudio.UI.ViewModels public IStudioApplicationManager ApplicationManager { get; set; } private bool _isLoading; - public bool IsLoading { get { return _isLoading; } set { _isLoading = value; RaisePropertyChangedAuto(); } } + private String _status; + public String Status + { + get { return _status; } + set { _status = value; RaisePropertyChangedAuto(); } + } + /// <summary> /// Initializes a new instance of the <see cref="LoadingViewVM"/> class. /// </summary> @@ -52,6 +60,7 @@ namespace Tango.MachineStudio.UI.ViewModels /// <param name="notificationProvider">The notification provider.</param> public LoadingViewVM(IStudioApplicationManager applicationManager, INavigationManager navigationManager, IStudioModuleLoader studioModuleLoader, INotificationProvider notificationProvider, IEventLogger eventLogger, TeamFoundationServiceExtendedClient teamFoundationClient) { + Status = "Loading, please wait..."; _tfs = teamFoundationClient; _eventLogger = eventLogger; ApplicationManager = applicationManager; @@ -79,6 +88,8 @@ namespace Tango.MachineStudio.UI.ViewModels { try { + Status = "Checking for critical updates..."; + LogManager.Log("Checking for forced update..."); var service = UpdateServiceHelper.GetUpdateServiceChannel(); var client = service.CreateChannel(); @@ -119,17 +130,23 @@ namespace Tango.MachineStudio.UI.ViewModels try { + Status = "Connecting to Team Foundation Services..."; _tfs.Initialize(); + Thread.Sleep(500); } catch (Exception ex) { LogManager.Log(ex, "Could not initialize Team Foundation Service client."); } + Status = "Loading, please wait..."; + ObservablesEntitiesAdapter.Instance.Initialize(); _eventLogger.Log(EventTypes.ApplicationStarted, "Application Started!"); + Status = "Starting application..."; + InvokeUI(() => { _studioModuleLoader.LoadModules(); diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs index 3cd3fb5f9..60447f37a 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core.Commands; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.MachineStudio.Common.Notifications; using Tango.SharedUI; diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs index 278926de9..e53ec0b39 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs @@ -13,7 +13,7 @@ using System.Windows.Media; using Tango.BL.Entities; using Tango.Core.Commands; using Tango.Core.DI; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.Logging; using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.Authentication; @@ -451,7 +451,7 @@ namespace Tango.MachineStudio.UI.ViewModels await x.SelectedMachine.Connect(); - var authenticated = await x.SelectedMachine.As<IExternalBridgeSecureClient>().Authenticate(login.Password); + var authenticated = await x.SelectedMachine.As<IExternalBridgeSecureClient>().Authenticate(login.Password, Environment.MachineName, AuthenticationProvider.CurrentUser.Guid, "Machine Studio"); if (!authenticated) { _notificationProvider.ShowError("It seems like you are not authorized to access the selected machine."); @@ -459,6 +459,14 @@ namespace Tango.MachineStudio.UI.ViewModels else { ApplicationManager.ConnectedMachine = x.SelectedMachine; + (x.SelectedMachine as IExternalBridgeSecureClient).SessionClosed += (_, __) => + { + InvokeUI(() => + { + _notificationProvider.ShowError("The remote machine has closed the current session. Machine disconnected."); + ApplicationManager.ConnectedMachine = null; + }); + }; PostMessage(new MachineConnectionChangedMessage() { Machine = x.SelectedMachine }); _eventLogger.Log(String.Format("Successfully connected to machine {0} via TCP", x.SelectedMachine.SerialNumber)); } |
