public void Load()
        {
            _themes.Clear();
            var storageDirectory = new StorageDirectory(ResourceManager.Instance.ThemesFolder.RelativePathParts.Merge(SlideSettingsManager.Instance.SlideSettings.SlideMasterFolder));

            if (!storageDirectory.ExistsLocal())
            {
                return;
            }

            LoadApprovedThemes(storageDirectory);

            foreach (var themeFolder in storageDirectory.GetLocalFolders())
            {
                var theme = new Theme(themeFolder);
                theme.Load();
                foreach (var approvedTheme in ApprovedThemes.Where(approvedTheme => approvedTheme.Value.Any(t => t.Equals(theme.Name))))
                {
                    theme.ApprovedSlides.Add(approvedTheme.Key);
                }
                _themes.Add(theme);
            }
            _themes.Sort((x, y) => x.Order.CompareTo(y.Order));

            ThemesChanged?.Invoke(null, EventArgs.Empty);
        }
Example #2
0
 private void ReloadThemes()
 {
     _themes = Directory.GetFiles(".", "*Theme.dll")
               .Select(path => new ThemeModel(Path.GetFullPath(path)))
               .ToArray();
     ThemesChanged?.Invoke(this, _themes);
 }