예제 #1
0
        private bool ListViewFilter(object obj)
        {
            var entry = obj as ApplicationUninstallerEntry;

            if (entry == null)
            {
                return(false);
            }

            if (FilteringOverride != null)
            {
                return(FilteringOverride.TestEntry(entry) == true);
            }

            if (_settings.Settings.FilterHideMicrosoft && !string.IsNullOrEmpty(entry.Publisher) &&
                entry.Publisher.Contains("Microsoft"))
            {
                return(false);
            }

            if (!_settings.Settings.FilterShowStoreApps && entry.UninstallerKind == UninstallerType.StoreApp)
            {
                return(false);
            }

            if (!_settings.Settings.FilterShowWinFeatures && entry.UninstallerKind == UninstallerType.WindowsFeature)
            {
                return(false);
            }

            if (!_settings.Settings.AdvancedDisplayOrphans && entry.IsOrphaned)
            {
                return(false);
            }

            if (!_settings.Settings.FilterShowProtected && entry.IsProtected)
            {
                return(false);
            }

            if (!_settings.Settings.FilterShowSystemComponents && entry.SystemComponent)
            {
                return(false);
            }

            if (!_settings.Settings.FilterShowUpdates && entry.IsUpdate)
            {
                return(false);
            }

            if (string.IsNullOrEmpty(_filteringFilterCondition.FilterText))
            {
                return(true);
            }

            return(_filteringFilterCondition.TestEntry(entry) == true);
        }