Beispiel #1
0
        public InstallerDialog(IEnumerable <IExtensionModel> missingExtensions)
        {
            InitializeComponent();
            _missingExtensions = missingExtensions;

            Loaded   += OnLoaded;
            ViewModel = InstallerDialogViewModel.From(missingExtensions);
        }
        public static InstallerDialogViewModel From(IEnumerable <IExtensionModel> extensions)
        {
            var installed = ExtensionInstalledChecker.Instance.GetInstalledExtensions();
            InstallerDialogViewModel temp = new InstallerDialogViewModel();

            foreach (IGrouping <string, IExtensionModel> grouping in extensions.GroupBy(x => x.Category))
            {
                var children = grouping.Select(x => new ExtensionVisualModel(x, !installed.Any(i => i.Header.Identifier == x.ProductId))).ToList();
                temp.AllExtensions.AddRange(children);

                ExtensionCategory category = new ExtensionCategory
                {
                    Name       = grouping.Key,
                    Extensions = children
                };

                temp.Categories.Add(category);
            }

            return(temp);
        }
        public static InstallerDialogViewModel From(IEnumerable <IExtensionModel> extensions)
        {
            var installed = ExtensionInstalledChecker.Instance.GetInstalledExtensions();
            InstallerDialogViewModel temp = new InstallerDialogViewModel();

            foreach (IGrouping <string, IExtensionModel> grouping in extensions.GroupBy(x => x.Category).OrderBy(x => GetConfig(x.Key).SortPriority).ThenBy(x => x.Key))
            {
                CategoryConfiguration config   = GetConfig(grouping.Key);
                ExtensionCategory     category = new ExtensionCategory
                {
                    IsExpanded = config.DefaultExpandedState,
                    Name       = grouping.Key
                };

                var children = grouping.Select(x => new ExtensionVisualModel(category, x, config.DefaultCheckedState, installed.All(i => i.Header.Identifier != x.ProductId))).ToList();
                category.Extensions = children;
                temp.AllExtensions.AddRange(children);

                temp.Categories.Add(category);
            }

            return(temp);
        }