aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-03-19 12:09:48 +0200
committerShlomo Hecht <shlomo@twine-s.com>2018-03-19 12:09:48 +0200
commit47d8c850e03797475c3bcd99bdd3d1a0e115413b (patch)
tree3e8ed360623c3745aeb6488ab3c6146a977d9dd2 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
parentcc4129c557405accb3ced68f7b6cb19dbdb87a24 (diff)
parent96352ac46ccb871783c63fd98efe034091214b7e (diff)
downloadTango-47d8c850e03797475c3bcd99bdd3d1a0e115413b.tar.gz
Tango-47d8c850e03797475c3bcd99bdd3d1a0e115413b.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs85
1 files changed, 68 insertions, 17 deletions
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 57f1d704c..b3c6236f8 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
@@ -11,11 +11,13 @@ using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
+using Tango.BL.Entities;
using Tango.Core.Commands;
using Tango.Integration.Services;
using Tango.Logging;
using Tango.MachineStudio.Common;
using Tango.MachineStudio.Common.Authentication;
+using Tango.MachineStudio.Common.EventLogging;
using Tango.MachineStudio.Common.Modules;
using Tango.MachineStudio.Common.Navigation;
using Tango.MachineStudio.Common.Notifications;
@@ -26,6 +28,7 @@ using Tango.MachineStudio.UI.SupervisingController;
using Tango.MachineStudio.UI.Views;
using Tango.MachineStudio.UI.Windows;
using Tango.PMR.Stubs;
+using Tango.Settings;
using Tango.SharedUI;
using Tango.SharedUI.Helpers;
using Tango.Transport.Adapters;
@@ -42,7 +45,7 @@ namespace Tango.MachineStudio.UI.ViewModels
private INavigationManager _navigation;
private bool _isDisconnecting;
private Thread _updateCheckThread;
- private LogManager logManager = LogManager.Default;
+ private IEventLogger _eventLogger;
/// <summary>
/// Gets or sets the current loaded module.
@@ -73,6 +76,16 @@ namespace Tango.MachineStudio.UI.ViewModels
set { _isMenuOpened = value; RaisePropertyChangedAuto(); }
}
+ private bool _isMachineErrorsOpened;
+ /// <summary>
+ /// Gets or sets a value indicating whether to display the machine errors.
+ /// </summary>
+ public bool IsMachineErrorsOpened
+ {
+ get { return _isMachineErrorsOpened; }
+ set { _isMachineErrorsOpened = value; RaisePropertyChangedAuto(); }
+ }
+
/// <summary>
/// Gets or sets the start module command.
/// </summary>
@@ -200,8 +213,10 @@ namespace Tango.MachineStudio.UI.ViewModels
IStudioModuleLoader studioModuleLoader,
INotificationProvider notificationProvider,
IStudioApplicationManager applicationManager,
- INavigationManager navigationManager) : base(view)
+ INavigationManager navigationManager,
+ IEventLogger eventLogger) : base(view)
{
+ _eventLogger = eventLogger;
_navigation = navigationManager;
AuthenticationProvider = authenticationProvider;
StudioModuleLoader = studioModuleLoader;
@@ -221,6 +236,31 @@ namespace Tango.MachineStudio.UI.ViewModels
_updateCheckThread = new Thread(UpdateCheckThreadMethod);
_updateCheckThread.IsBackground = true;
_updateCheckThread.Start();
+
+ ApplicationManager.ConnectedMachineChanged += (sender, machine) =>
+ {
+ if (machine != null)
+ {
+ machine.MachineEventsStateProvider.NewEvents -= MachineEventsStateProvider_NewEvents;
+ machine.MachineEventsStateProvider.NewEvents += MachineEventsStateProvider_NewEvents;
+
+ machine.MachineEventsStateProvider.EventsResolved -= MachineEventsStateProvider_EventsResolved;
+ machine.MachineEventsStateProvider.EventsResolved += MachineEventsStateProvider_EventsResolved;
+ }
+ };
+ }
+
+ private void MachineEventsStateProvider_EventsResolved(object sender, IEnumerable<MachinesEvent> e)
+ {
+ if (ApplicationManager.ConnectedMachine.MachineEventsStateProvider.Events.Count == 0)
+ {
+ IsMachineErrorsOpened = false;
+ }
+ }
+
+ private void MachineEventsStateProvider_NewEvents(object sender, IEnumerable<MachinesEvent> e)
+ {
+ IsMachineErrorsOpened = true;
}
private void UpdateCheckThreadMethod()
@@ -249,7 +289,7 @@ namespace Tango.MachineStudio.UI.ViewModels
}
catch (Exception ex)
{
- logManager.Log(ex, "Error in version update periodic check...");
+ LogManager.Log(ex, "Error in version update periodic check...");
}
Thread.Sleep(TimeSpan.FromMinutes(4));
@@ -319,11 +359,12 @@ namespace Tango.MachineStudio.UI.ViewModels
else
{
ApplicationManager.ConnectedMachine = x.SelectedMachine;
+ _eventLogger.Log(String.Format("Successfully connected to machine {0} via TCP", x.SelectedMachine.SerialNumber));
}
}
catch (Exception ex)
{
- logManager.Log(ex);
+ LogManager.Log(ex);
_notificationProvider.ShowError(ex.Message);
}
@@ -333,21 +374,31 @@ namespace Tango.MachineStudio.UI.ViewModels
}
else
{
- using (NotificationProvider.PushTaskItem("Connecting to " + x.SelectedMachine.ToString() + "..."))
+ _notificationProvider.ShowModalDialog<MachineSerialViewVM>(async (vm) =>
{
- try
- {
- await x.SelectedMachine.Connect();
- ApplicationManager.ConnectedMachine = x.SelectedMachine;
- }
- catch (Exception ex)
+ if (vm.SelectedMachine != null)
{
- logManager.Log(ex);
- _notificationProvider.ShowError(ex.Message);
- }
+ using (NotificationProvider.PushTaskItem("Connecting to " + x.SelectedMachine.ToString() + "..."))
+ {
+ try
+ {
+ await x.SelectedMachine.Connect();
+ x.SelectedMachine.SerialNumber = vm.SelectedMachine.SerialNumber;
+ ApplicationManager.ConnectedMachine = x.SelectedMachine;
+ _eventLogger.Log(String.Format("Successfully connected to machine {0} via USB", x.SelectedMachine.SerialNumber));
+ SettingsManager.Default.MachineStudio.LastVirtualMachineSerialNumber = vm.SelectedMachine.SerialNumber;
+ SettingsManager.SaveDefaultSettings();
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex);
+ _notificationProvider.ShowError(ex.Message);
+ }
- InvalidateRelayCommands();
- }
+ InvalidateRelayCommands();
+ }
+ }
+ });
}
InvalidateRelayCommands();
@@ -436,7 +487,7 @@ namespace Tango.MachineStudio.UI.ViewModels
}
catch (Exception ex)
{
- logManager.Log(ex, "Error popping out module " + module.Name);
+ LogManager.Log(ex, "Error popping out module " + module.Name);
_notificationProvider.ShowError("Error popping out module " + module.Name);
}
}