From 7fff53b4e158212572dd0d83b5628e799e05ba01 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 24 Jan 2019 13:28:53 +0200 Subject: Implemented forced environment version in machine studio. --- .../ViewModels/LoginViewVM.cs | 23 +++++++++++++++++++--- .../ViewModels/UpdateViewVM.cs | 23 ++++++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels') diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs index c8e25e2d4..400d2c2f0 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs @@ -10,11 +10,13 @@ using Tango.BL; using Tango.BL.Enumerations; using Tango.Core.Commands; using Tango.Core.Cryptography; +using Tango.Core.DI; using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.Authentication; using Tango.MachineStudio.Common.EventLogging; using Tango.MachineStudio.Common.Navigation; using Tango.MachineStudio.Common.Notifications; +using Tango.MachineStudio.UI.Messages; using Tango.Settings; using Tango.SharedUI; using Tango.Web; @@ -150,11 +152,26 @@ namespace Tango.MachineStudio.UI.ViewModels await Task.Factory.StartNew(() => { - - _settings.DeploymentSlot = DeploymentSlot; - _authenticationProvider.Login(Email, Password); + var result = _authenticationProvider.Login(Email, Password).Response; + + if (result.VersionChangeRequired) + { + InvokeUI(() => + { + if (_notificationProvider.ShowErrorQuestion($"Your version of Machine Studio is different from the version specified for the selected environment.\nMachine Studio must be changed to version '{result.RequiredVersion}' in order to continue.\nDo you wish to update your local version?")) + { + TangoMessenger.Default.Send(new ChangeVersionMessage() + { + LoginResponse = result, + }); + _navigationManager.NavigateTo(NavigationView.UpdateView); + } + }); + + return; + } _eventLogger.Log(EventTypes.APPLICATION_STARTED, "Application Started!"); diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs index 60a023071..f671251f7 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs @@ -158,6 +158,29 @@ namespace Tango.MachineStudio.UI.ViewModels IsRollbackAvailable = File.Exists(GetRollbackFile()); TangoMessenger.Default.Register(HandleForcedUpdateMessage); + TangoMessenger.Default.Register(HandleChangeVersionMessage); + } + + private async void HandleChangeVersionMessage(ChangeVersionMessage msg) + { + ForcedUpdate = true; + InvalidateRelayCommands(); + + Status = UpdateStatus.CheckingForUpdate; + + var client = new MachineStudioUpdateService(); + + DownloadLatestVersionResponse response = await client.DownloadLatestVersion(new DownloadLatestVersionRequest() + { + AccessToken = _authentication.AccessToken, + }); + + _updateInfo = new CheckForUpdatesResponse(); + _updateInfo.BlobAddress = response.BlobAddress; + _updateInfo.Version = response.Version; + LatestVersion = _updateInfo.Version; + + StartUpdate(); } private void HandleForcedUpdateMessage(ForcedUpdateMessage msg) -- cgit v1.3.1