private Predicate <Type> CreateExtensionFilter()
        {
            Predicate <Type>   filter   = null;
            TypeFilterSettings settings = ExtensionFilterSettings;

            try
            {
                settings.Load();
                filter = new Predicate <Type>(t =>
                {
                    bool filtered = settings[t];
                    if (filtered)
                    {
                        extensionsFiltered++;
                    }

                    return(!filtered);
                });
            }
            catch (Exception e)
            {
                logger.Write(e, LogExtensionErrorLoadingFilter);
                runErrors = true;
            }

            return(filter);
        }
        private void ShowExtensionFilter()
        {
            TypeFilterAssemblyLoader loader = new TypeFilterAssemblyLoader(sberBank.PathManager.ExtensionsPath,
                                                                           TypeFilterAssemblyLoader.GetExtensionSelector <ISberBank, ISberBankExtension>());

            TypeFilterSettings settings = sberBank.ExtensionFilterSettings;

            TypeFilterForm form = new TypeFilterForm();

            form.Text = "Загружаемые расширения";
            form.Setup(new object[] { settings, loader });
            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            Exception x = form.GetResult <Exception>();

            if (x != null)
            {
                this.ShowError(x);
            }
            else
            {
                sberBank.Logger.Write(LogLevel.Verbose, String.Format("Установлен фильтр расширений, всего {0}", settings.Count));
            }
        }