public static async Task SaveContext(Program currentProject)
{
try
{
if (_context == null)
return;
var themeChooser = ServiceLocator.ThemeChooser;
var settingsViewModel = ServiceLocator.GetInstance<SettingsViewModel>();
if (themeChooser.SelectedTheme != null)
{
_context.LocalSettings.CurrentThemeIndex = themeChooser.SelectedThemeIndex;
}
if (settingsViewModel.CurrentCulture != null)
{
_context.LocalSettings.CurrentLanguageString = settingsViewModel.CurrentCulture.Name;
}
if (currentProject == null)
{
await ServiceLocator.TraceService.SaveLocal();
return;
}
_context.LocalSettings.CurrentProgramName = currentProject.Name;
await ServiceLocator.ContextService.StoreLocalSettings(_context.LocalSettings);
await currentProject.Save();
// allow viewmodels to save settings // TODO: check if this is awaited
Messenger.Default.Send(new GenericMessage<LocalSettings>(_context.LocalSettings), ViewModelMessagingToken.SaveSettings);
await ServiceLocator.TraceService.SaveLocal();
}
catch (Exception e)
{
throw;
}
//await ServiceLocator.TraceService.SaveLocal();
}
}