aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2019-01-09 13:45:40 +0200
committerAvi Levkovich <avi@twine-s.com>2019-01-09 13:45:40 +0200
commitc2019e2a94afc7f25258ae38478ae74434414a1f (patch)
treeee9cf870d5738004ebd92cf841c1bdbd26793984 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels
parentc84c8852f2889235a181ec74f0d2fdf8584f2a7d (diff)
parentd50d729a2b7d45ca4b22df7ff0d8823825c479b6 (diff)
downloadTango-c2019e2a94afc7f25258ae38478ae74434414a1f.tar.gz
Tango-c2019e2a94afc7f25258ae38478ae74434414a1f.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/AboutViewVM.cs4
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs47
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs34
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs26
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs3
5 files changed, 39 insertions, 75 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 e8d33b0ca..c05ce9982 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/AboutViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/AboutViewVM.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.BL;
using Tango.Core;
using Tango.MachineStudio.Common;
using Tango.MachineStudio.Common.StudioApplication;
@@ -19,11 +20,14 @@ namespace Tango.MachineStudio.UI.ViewModels
public MachineStudioSettings MachineStudioSettings { get; set; }
+ public DataSource DataSource { get; set; }
+
public AboutViewVM(IStudioApplicationManager applicationManager)
{
ApplicationManager = applicationManager;
Settings = SettingsManager.Default.GetOrCreate<CoreSettings>();
MachineStudioSettings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>();
+ DataSource = ObservablesContext.GetActualDataSource();
}
}
}
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 545d51ef2..283ea3637 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
@@ -91,48 +91,6 @@ namespace Tango.MachineStudio.UI.ViewModels
{
try
{
- Status = "Checking for critical updates...";
-
- LogManager.Log("Checking for forced update...");
-
- var client = new MachineStudioUpdateService();
-
- CheckForUpdatesResponse response = client.CheckForUpdates(new CheckForUpdatesRequest()
- {
- Email = "ForceUpdate",
- Password = "ForceUpdate",
- Version = ApplicationManager.Version.ToString(),
- }).Result;
-
- if (response.IsUpdateAvailable && response.ForcedUpdate)
- {
- LogManager.Log("Forced update found, Navigating to update view!");
-
- InvokeUI(() =>
- {
- if (_notificationProvider.ShowQuestion("Machine Studio has detected a critical update which must be installed in order for the application to run properly. Do you wish to download and install this update?"))
- {
- TangoMessenger.Default.Send(new Messages.ForcedUpdateMessage() { UpdateResponse = response });
- _navigationManager.NavigateTo(NavigationView.UpdateView);
- }
- else
- {
- ApplicationManager.ShutDown();
- }
-
- IsLoading = false;
- });
-
- return;
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Error checking for forced update!");
- }
-
- try
- {
Status = "Connecting to Team Foundation Services...";
_tfs.Initialize();
Thread.Sleep(500);
@@ -144,9 +102,8 @@ namespace Tango.MachineStudio.UI.ViewModels
Status = "Loading, please wait...";
- ObservablesStaticCollections.Instance.Initialize();
-
- _eventLogger.Log(EventTypes.ApplicationStarted, "Application Started!");
+ //ObservablesStaticCollections.Instance.Initialize();
+ //_eventLogger.Log(EventTypes.ApplicationStarted, "Application Started!");
Status = "Starting application...";
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 a37879a5e..4ebf3d96d 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs
@@ -6,6 +6,8 @@ using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.BL;
+using Tango.BL.Enumerations;
using Tango.Core.Commands;
using Tango.Core.Cryptography;
using Tango.MachineStudio.Common;
@@ -15,6 +17,7 @@ using Tango.MachineStudio.Common.Navigation;
using Tango.MachineStudio.Common.Notifications;
using Tango.Settings;
using Tango.SharedUI;
+using Tango.Web;
namespace Tango.MachineStudio.UI.ViewModels
{
@@ -44,6 +47,9 @@ namespace Tango.MachineStudio.UI.ViewModels
}
private String _password;
+ /// <summary>
+ /// Gets or sets the password.
+ /// </summary>
[Required(ErrorMessage = "Password is required")]
public String Password
{
@@ -51,6 +57,16 @@ namespace Tango.MachineStudio.UI.ViewModels
set { _password = value; RaisePropertyChangedAuto(); }
}
+ private DeploymentSlot _deploymentSlot;
+ /// <summary>
+ /// Gets or sets the deployment slot.
+ /// </summary>
+ public DeploymentSlot DeploymentSlot
+ {
+ get { return _deploymentSlot; }
+ set { _deploymentSlot = value; RaisePropertyChangedAuto(); }
+ }
+
private bool _isLogging;
/// <summary>
/// Gets or sets a value indicating whether this instance is logging.
@@ -90,10 +106,11 @@ namespace Tango.MachineStudio.UI.ViewModels
_navigationManager = navigationManager;
_authenticationProvider = authenticationProvider;
_eventLogger = eventLogger;
- LoginCommand = new RelayCommand(Login,() => !IsLogging);
+ LoginCommand = new RelayCommand(Login, () => !IsLogging);
cryptographer = new Rfc2898Cryptographer();
Email = _settings.LastLoginEmail;
+ DeploymentSlot = _settings.DeploymentSlot;
RememberMe = _settings.RememberMe;
try
@@ -120,21 +137,26 @@ namespace Tango.MachineStudio.UI.ViewModels
await Task.Factory.StartNew(() =>
{
+ _settings.DeploymentSlot = DeploymentSlot;
+
_authenticationProvider.Login(Email, Password);
+
+ _eventLogger.Log(EventTypes.APPLICATION_STARTED, "Application Started!");
+
_navigationManager.NavigateTo(NavigationView.MainView);
+
_settings.LastLoginEmail = Email;
_settings.RememberMe = RememberMe;
-
_settings.LastLoginPassword = RememberMe ? cryptographer.Encrypt(Password) : null;
_settings.Save();
- _eventLogger.Log("User logged in");
+ _eventLogger.Log("User logged in.");
});
}
- catch (Exception)
+ catch (Exception ex)
{
-
- _notificationProvider.ShowError("Invalid credentials. Please try again.");
+ LogManager.Log(ex, "Login Error.");
+ _notificationProvider.ShowError($"The specified email or password was incorrect, or you don't have a permission to run this application.\nError: {ex.FlattenMessage()}");
}
finally
{
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 befad162c..c13c7379a 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
@@ -20,7 +20,6 @@ using Tango.MachineStudio.Common;
using Tango.MachineStudio.Common.Authentication;
using Tango.MachineStudio.Common.Diagnostics;
using Tango.MachineStudio.Common.EventLogging;
-using Tango.MachineStudio.Common.Html;
using Tango.MachineStudio.Common.Messages;
using Tango.MachineStudio.Common.Modules;
using Tango.MachineStudio.Common.Navigation;
@@ -54,7 +53,6 @@ namespace Tango.MachineStudio.UI.ViewModels
private bool _isDisconnecting;
private Thread _updateCheckThread;
private IEventLogger _eventLogger;
- private IHtmlPresenter _htmlPresenter;
private MachineStudioSettings _settings;
/// <summary>
@@ -282,7 +280,7 @@ namespace Tango.MachineStudio.UI.ViewModels
IEventLogger eventLogger,
IDiagnosticsFrameProvider frameProvider,
ISpeechProvider speechProvider,
- IHtmlPresenter htmlPresenter, TeamFoundationServiceExtendedClient tfs) : base()
+ TeamFoundationServiceExtendedClient tfs) : base()
{
TFSClient = tfs;
_eventLogger = eventLogger;
@@ -293,7 +291,6 @@ namespace Tango.MachineStudio.UI.ViewModels
ApplicationManager = applicationManager;
DiagnosticsFrameProvider = frameProvider;
SpeechProvider = speechProvider;
- _htmlPresenter = htmlPresenter;
_settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>();
@@ -363,8 +360,7 @@ namespace Tango.MachineStudio.UI.ViewModels
CheckForUpdatesResponse response = client.CheckForUpdates(new CheckForUpdatesRequest()
{
- Email = _authenticationProvider.CurrentUser.Email,
- Password = _authenticationProvider.CurrentUser.Password,
+ AccessToken = _authenticationProvider.AccessToken,
Version = _applicationManager.Version.ToString(),
AcceptBetaRelease = _settings.AcceptBetaRelease,
}).Result;
@@ -455,7 +451,7 @@ namespace Tango.MachineStudio.UI.ViewModels
//Check machine exist on my database first
if (x.SelectedMachine.Machine == null)
{
- _notificationProvider.ShowError( $"The specified machine '{x.SelectedMachine.SerialNumber}' could not be found on the database. Aborting connection.");
+ _notificationProvider.ShowError($"The specified machine '{x.SelectedMachine.SerialNumber}' could not be found on the database. Aborting connection.");
return;
}
@@ -783,21 +779,7 @@ namespace Tango.MachineStudio.UI.ViewModels
/// <param name="machineEvent">The HTML page.</param>
private async void ResolveMachineEvent(MachinesEvent machineEvent)
{
- if (machineEvent.EventType.HtmlPage != null)
- {
- if (_htmlPresenter.DisplayHtml(machineEvent.EventType.HtmlPage))
- {
- if (ApplicationManager.ConnectedMachine != null && machineEvent.EventType.Resolvable)
- {
- _eventLogger.Log(String.Format("Event '{0}' resolved by user.", machineEvent.EventType.Name));
- await ApplicationManager.ConnectedMachine.ResolveEvent((PMR.Diagnostics.EventType)machineEvent.Type);
- }
- }
- }
- else
- {
- _notificationProvider.ShowWarning("Could not locate guidance content for the specified event.");
- }
+
}
/// <summary>
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 3fec96629..60a023071 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
@@ -196,8 +196,7 @@ namespace Tango.MachineStudio.UI.ViewModels
CheckForUpdatesResponse response = client.CheckForUpdates(new CheckForUpdatesRequest()
{
- Email = _authentication.CurrentUser.Email,
- Password = _authentication.CurrentUser.Password,
+ AccessToken = _authentication.AccessToken,
Version = _application.Version.ToString(),
AcceptBetaRelease = settings.AcceptBetaRelease,
}).Result;