diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-03-19 12:09:48 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-03-19 12:09:48 +0200 |
| commit | 47d8c850e03797475c3bcd99bdd3d1a0e115413b (patch) | |
| tree | 3e8ed360623c3745aeb6488ab3c6146a977d9dd2 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs | |
| parent | cc4129c557405accb3ced68f7b6cb19dbdb87a24 (diff) | |
| parent | 96352ac46ccb871783c63fd98efe034091214b7e (diff) | |
| download | Tango-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.cs | 85 |
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); } } |
