aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2017-12-19 10:25:40 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2017-12-19 10:25:40 +0200
commitafc7a07d285e08d905c58dd5978441c155b2f296 (patch)
treea2f4f51ef2747ae3a2aded2637a352ce8ef85934 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
parentad35c9c2df0001157ea13312382f3cdfdad67f06 (diff)
downloadTango-afc7a07d285e08d905c58dd5978441c155b2f296.tar.gz
Tango-afc7a07d285e08d905c58dd5978441c155b2f296.zip
MERGE.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs50
1 files changed, 41 insertions, 9 deletions
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 72ab5aca9..f50b734f4 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
@@ -4,26 +4,58 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Tango.Core.Threading;
+using Tango.DAL.Observables;
using Tango.MachineStudio.Common.Modules;
using Tango.MachineStudio.Common.Navigation;
+using Tango.MachineStudio.Common.Notifications;
using Tango.SharedUI;
namespace Tango.MachineStudio.UI.ViewModels
{
public class LoadingViewVM : ViewModel
{
- public LoadingViewVM(INavigationManager navigationManager, IStudioModuleLoader studioModuleLoader)
+ private INotificationProvider _notificationProvider;
+ private INavigationManager _navigationManager;
+ private IStudioModuleLoader _studioModuleLoader;
+
+ public LoadingViewVM(INavigationManager navigationManager, IStudioModuleLoader studioModuleLoader, INotificationProvider notificationProvider)
+ {
+ _navigationManager = navigationManager;
+ _studioModuleLoader = studioModuleLoader;
+ _notificationProvider = notificationProvider;
+ Load();
+ }
+
+ private void Load()
{
- Task.Factory.StartNew(() =>
+ StaThreadHelper.StartStaThread(() =>
{
Thread.Sleep(3000);
- }).ContinueWith((x) =>
- {
-
- studioModuleLoader.LoadModules();
- navigationManager.NavigateTo(NavigationView.LoginView);
-
- }, TaskScheduler.FromCurrentSynchronizationContext());
+ try
+ {
+ ObservablesEntitiesAdapter.Instance.Initialize();
+ InvokeUI(() =>
+ {
+ _studioModuleLoader.LoadModules();
+ _navigationManager.NavigateTo(NavigationView.LoginView);
+ });
+ }
+ catch (Exception ex)
+ {
+ InvokeUINow(() =>
+ {
+ if (_notificationProvider.ShowQuestion("An error occurred while trying to connect to Twine database." + Environment.NewLine + "Would you like to try again?"))
+ {
+ Load();
+ }
+ else
+ {
+ Environment.Exit(0);
+ }
+ });
+ }
+ });
}
}
}