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);
}