From 72fc39f873de467c1431d928bce4d39442205691 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Sun, 19 Oct 2025 16:20:01 +0300 Subject: MS LITE --- .../ViewModels/LoginViewVM.cs | 49 ++++++++++++++++++++-- 1 file changed, 45 insertions(+), 4 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs') 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 7fa79984b..e7a32d107 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs @@ -25,6 +25,8 @@ using Tango.Web; using SimpleValidator.Extensions; using Tango.BL.Entities; using System.Data.Entity; +using Tango.MachineStudio.Common.Buid; +using System.Diagnostics; namespace Tango.MachineStudio.UI.ViewModels { @@ -42,6 +44,7 @@ namespace Tango.MachineStudio.UI.ViewModels private MachineStudioSettings _settings; private MachineStudioWebClient _machineStudioWebClient; private TaskCompletionSource _updatePasswordCompletionSource; + private IBuildProvider _buildProvider; private String _email; /// @@ -66,6 +69,17 @@ namespace Tango.MachineStudio.UI.ViewModels set { _password = value; RaisePropertyChangedAuto(); } } + private String _serialNumber; + /// + /// Gets or sets the password. + /// + [Required(ErrorMessage = "Serial Number is required")] + public String SerialNumber + { + get { return _serialNumber; } + set { _serialNumber = value; RaisePropertyChangedAuto(); } + } + private DeploymentSlot _deploymentSlot; /// /// Gets or sets the deployment slot. @@ -156,6 +170,8 @@ namespace Tango.MachineStudio.UI.ViewModels set { _newPassword2 = value; RaisePropertyChangedAuto(); } } + public List Environments { get; set; } + /// /// Gets or sets the login command. /// @@ -172,24 +188,42 @@ namespace Tango.MachineStudio.UI.ViewModels /// The authentication provider. /// The navigation manager. /// The notification provider. - public LoginViewVM(MachineStudioWebClient machineStudioWebClient, IAuthenticationProvider authenticationProvider, INavigationManager navigationManager, INotificationProvider notificationProvider, IEventLogger eventLogger) + public LoginViewVM(IBuildProvider buildProvider, MachineStudioWebClient machineStudioWebClient, IAuthenticationProvider authenticationProvider, INavigationManager navigationManager, INotificationProvider notificationProvider, IEventLogger eventLogger) { EnableSlotSelection = true; ShowLoggingDetails = true; _machineStudioWebClient = machineStudioWebClient; + _buildProvider = buildProvider; _settings = SettingsManager.Default.GetOrCreate(); + if (_buildProvider.BuildType == MSBuildType.Default) + { + Environments = Enum.GetValues(typeof(DeploymentSlot)).Cast().ToList(); + } + else + { + Environments = new List(); + + Environments.Add(DeploymentSlot.DEV); + Environments.Add(DeploymentSlot.TEST); + Environments.Add(DeploymentSlot.BETA); + Environments.Add(DeploymentSlot.PROD); + } + _notificationProvider = notificationProvider; _navigationManager = navigationManager; _authenticationProvider = authenticationProvider; + _buildProvider = buildProvider; _eventLogger = eventLogger; LoginCommand = new RelayCommand(Login, () => !IsLogging); UpdatePasswordCommand = new RelayCommand(UpdatePassword, () => IsChangingPassword); cryptographer = new Rfc2898Cryptographer(); Email = _settings.LastLoginEmail; + SerialNumber = _settings.LastLoginSerialNumber; DeploymentSlot = _settings.DeploymentSlot; + RememberMe = _settings.RememberMe; if (_settings.LastLoginMethod == LoginMethod.ActiveDirectory) @@ -201,6 +235,12 @@ namespace Tango.MachineStudio.UI.ViewModels IsStandardUser = true; } + if (_buildProvider.BuildType == MSBuildType.Lite) + { + IsStandardUser = true; + } + + try { Password = cryptographer.Decrypt(_settings.LastLoginPassword); @@ -236,7 +276,7 @@ namespace Tango.MachineStudio.UI.ViewModels LoginResponse result = _authenticationProvider.Login(Email, Password, loginMethod, _settings.ByPassEnvironmentVersionCheck, (progress) => { ProgressLog = progress; - }).Response; + }, SerialNumber).Response; if (result.VersionChangeRequired && !_settings.ByPassEnvironmentVersionCheck) { @@ -271,6 +311,7 @@ namespace Tango.MachineStudio.UI.ViewModels _settings.RememberMe = RememberMe; _settings.LastLoginMethod = loginMethod; _settings.LastLoginPassword = RememberMe ? cryptographer.Encrypt(Password) : null; + _settings.LastLoginSerialNumber = SerialNumber; _settings.Save(); EnableSlotSelection = false; @@ -280,11 +321,11 @@ namespace Tango.MachineStudio.UI.ViewModels IsChangingPassword = false; InvalidateRelayCommands(); - InvokeUI(() => + InvokeUI(() => { MainWindow.Instance.Title += $" - {_settings.DeploymentSlot}"; }); - + }); } catch (Exception ex) -- cgit v1.3.1