From b7c6bb781094a05dff4814aeb38d5a10c56eabf4 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Thu, 14 Jan 2021 02:25:15 +0200 Subject: Error handling for machine configuration machine loading. --- .../ViewModels/MachineViewVM.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs') diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs index fd953a0b8..822f2cb80 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs @@ -7,6 +7,7 @@ using Tango.BL.Entities; using Tango.FSE.Common; using Tango.FSE.Common.Navigation; using Tango.FSE.MachineConfiguration.Messages; +using Tango.FSE.MachineConfiguration.Navigation; using static Tango.FSE.BL.Services.MachineConfigurationService; using static Tango.FSE.MachineConfiguration.ViewModels.MachineViewVM; @@ -35,7 +36,7 @@ namespace Tango.FSE.MachineConfiguration.ViewModels { if (!CurrentUser.HasPermission(Tango.BL.Enumerations.Permissions.DataStoreRead)) { - Task.Delay(500).ContinueWith((x) => + Task.Delay(500).ContinueWith((x) => { SelectedView = _selectedView; NotificationProvider.ShowError("The current user profile does not allow accessing the data store.\nPlease contact your administrator."); @@ -66,8 +67,18 @@ namespace Tango.FSE.MachineConfiguration.ViewModels { using (NotificationProvider.PushTaskItem("Loading machine configuration...")) { - EditingComposition = await Services.MachineConfigurationService.GetMachineEditingComposition(machineGuid); - RaiseMessage(new EditingCompositionLoadedMessage() { EditingComposition = EditingComposition }); + try + { + EditingComposition = await Services.MachineConfigurationService.GetMachineEditingComposition(machineGuid); + RaiseMessage(new EditingCompositionLoadedMessage() { EditingComposition = EditingComposition }); + } + catch (Exception ex) + { + LogManager.Log(ex, "Error loading machine."); + await Task.Delay(1000); + await ModularNavigationManager.NavigateBack(); + await NotificationProvider.ShowError($"Error loading the selected machine.\n{ex.FlattenMessage()}"); + } } } } -- cgit v1.3.1