private static async Task LoadContext() { await ServiceLocator.TraceService.LoadLocal(); _context = new CatrobatContext(); var localSettings = await ServiceLocator.ContextService.RestoreLocalSettings(); _context.LocalSettings = localSettings; if (localSettings == null) { _context.LocalSettings = new LocalSettings(); var defaultProject = await ServiceLocator.ContextService. RestoreDefaultProgram(AppResources.Main_DefaultProgramName); ProgramChecker.CheckProgram(defaultProject); _context.LocalSettings.CurrentProgramName = defaultProject.Name; await defaultProject.Save(); } if (_context.LocalSettings.CurrentLanguageString == null) { _context.LocalSettings.CurrentLanguageString = ServiceLocator.CultureService.GetCulture().TwoLetterISOLanguageName; } var themeChooser = ServiceLocator.ThemeChooser; if (_context.LocalSettings.CurrentThemeIndex != -1) { themeChooser.SelectedThemeIndex = _context.LocalSettings.CurrentThemeIndex; } if (_context.LocalSettings.CurrentLanguageString != null) { ServiceLocator.GetInstance <SettingsViewModel>().CurrentCulture = new CultureInfo(_context.LocalSettings.CurrentLanguageString); } var themeChooserChangedMessage = new GenericMessage <ThemeChooser>(themeChooser); Messenger.Default.Send(themeChooserChangedMessage, ViewModelMessagingToken.ThemeChooserListener); var contextChangedMessage = new GenericMessage <CatrobatContextBase>(_context); Messenger.Default.Send(contextChangedMessage, ViewModelMessagingToken.ContextListener); var localProjectsChangedMessage = new MessageBase(); Messenger.Default.Send(localProjectsChangedMessage, ViewModelMessagingToken.LocalProgramsChangedListener); //var message = new GenericMessage<Project>(currentProject); //Messenger.Default.Send(message, ViewModelMessagingToken.CurrentProgramChangedListener); // allow viewmodels to load from settings Messenger.Default.Send(new GenericMessage <LocalSettings>(_context.LocalSettings), ViewModelMessagingToken.LoadSettings); }