public override async Task OnOpen(CancelEventArgs e)
    {
        await base.OnOpen(e);

        var settings = _settingsService.LoadSettings();

        if (!Directory.Exists(settings.PrintsPath))
        {
            MessageBox.Show(_translationManager.GetTranslation(nameof(StringTable.Msg_PrintProjectsFolderNotConfigured)), "CuraManager", AlertButton.Ok, AlertImage.Information);
            e.Cancel = true;
        }
        else
        {
            _cache ??= _cachingService.LoadCache(settings.PrintsPath);
            if (_currentPrintsPath != settings.PrintsPath)
            {
                _currentPrintsPath = settings.PrintsPath;
                PrintElements.ForEach(x => x.Dispose());
                PrintElements.Clear();
            }

            var newElements = await _printsService.GetNewPrintElements(_cache, PrintElements).ToListAsync();

            newElements.ForEach(x => AvailableTags.AddIfNotExists(x.Tags));
            PrintElements.Add(newElements);
            PrintElementsViewSource.View.Refresh();
        }
    }
 private async Task ExecuteReloadModels()
 {
     await ExecuteLoadingAction(
         _translationManager.GetTranslation(nameof(StringTable.Prog_ReloadModels)),
         new Func <Task>(async() =>
     {
         await Task.Run(() =>
         {
             PrintElements.Add(_printsService.GetNewPrintElements(_cache, PrintElements));
             PrintElements.ForEach(x => x.InitializeMetadata());
         });
         PrintElementsViewSource.View.Refresh();
     }),
         _translationManager.GetTranslation(nameof(StringTable.Suc_ReloadModels)),
         _translationManager.GetTranslation(nameof(StringTable.Fail_ReloadModels)));
 }