Ejemplo n.º 1
0
        /// <summary>
        /// Method is called when a plugin that implements this interface is loaded.
        /// Usually this method contains code which creates rule actions and performs
        /// corrections to the resources created during the first start of the plugin.
        /// </summary>
        public void RegisterViewsEachRun()
        {
            string[]             applType = new string[] { "RSSItem" };
            IFilterRegistry      fMgr     = Core.FilterRegistry;
            INotificationManager notifMgr = Core.NotificationManager;

            notifMgr.RegisterNotifyMeResourceType("RSSFeed", "RSSItem");
            notifMgr.RegisterNotifyMeResourceType("RSSItem", "RSSItem");

            //  Conditions/Templates
            IResource feedCondition = fMgr.CreateConditionTemplate(PostInFeedName, PostInFeedDeep, applType, ConditionOp.In, "RSSFeed", "RSSItem");

            fMgr.AssociateConditionWithGroup(feedCondition, RSSConditionsGroup);
            notifMgr.RegisterNotifyMeCondition("RSSFeed", feedCondition, 0);
            notifMgr.RegisterNotifyMeCondition("RSSItem", feedCondition, -Props.RSSItem);

            feedCondition = fMgr.RegisterCustomCondition(PostInSearchFeedName, PostInSearchFeedDeep, applType, new PostInSearchFeedCondition());
            fMgr.AssociateConditionWithGroup(feedCondition, RSSConditionsGroup);

            feedCondition = fMgr.RegisterCustomCondition(PostIsAuthorsCommentName, PostIsAuthorsCommentDeep, applType, new PostIsAuthorsCommentCondition());
            fMgr.AssociateConditionWithGroup(feedCondition, RSSConditionsGroup);

            //  Rule Actions
            Core.FilterEngine.RegisterRuleApplicableResourceType("RSSItem");
            fMgr.RegisterRuleAction(DownloadEnclosureName, DownloadEnclosureDeep, new EnclosureDownloadRuleAction(), applType);

            fMgr.RegisterRuleActionTemplate(DownloadEnclosureToName, DownloadEnclosureToDeep, new EnclosureDownloadToDirRuleActionTemplate(),
                                            applType, ConditionOp.In, "ExternalDir");
        }
Ejemplo n.º 2
0
 //  IFilterRegistry in params is mostly for PicoContainer dependency.
 public FormattingRuleManager(IFilterRegistry fmgr)
 {
     _fmgr = fmgr;
     RegisterTypes();
     CheckValidInvisibleRules();
     SetupFormattingRules();
 }
Ejemplo n.º 3
0
        public void RegisterFilters(IFilterRegistry filterRegistry)
        {
            filterRegistry.Add(Enumerable.Empty <IFilterCriteria>(), typeof(ContentItemFilter));

            ControllerActionFilterCriteria contentItemsInputCriteria = new ControllerActionFilterCriteria();

            contentItemsInputCriteria.AddMethod <PageController>(p => p.Edit(null, null));
            contentItemsInputCriteria.AddMethod <PageController>(p => p.SaveEdit(null, null));
            filterRegistry.Add(new[] { contentItemsInputCriteria }, typeof(ContentItemsInputFilter));

            ControllerActionFilterCriteria pageListActionCriteria = new ControllerActionFilterCriteria();

            pageListActionCriteria.AddMethod <PageController>(p => p.Add(null));
            pageListActionCriteria.AddMethod <PageController>(p => p.AddSave(null));
            pageListActionCriteria.AddMethod <PageController>(p => p.Edit(null, null));
            pageListActionCriteria.AddMethod <PageController>(p => p.SaveEdit(null, null));
            filterRegistry.Add(new[] { pageListActionCriteria }, typeof(PageListActionFilter));

            ControllerActionFilterCriteria adminActionsCriteria = new ControllerActionFilterCriteria();

            adminActionsCriteria.AddMethod <PageController>(p => p.Add(null));
            adminActionsCriteria.AddMethod <PageController>(p => p.AddSave(null));
            adminActionsCriteria.AddMethod <PageController>(p => p.Edit(null, null));
            adminActionsCriteria.AddMethod <PageController>(p => p.SaveEdit(null, null));
            adminActionsCriteria.AddMethod <PageController>(p => p.Remove(null, null));
            filterRegistry.Add(new[] { adminActionsCriteria }, typeof(AuthorizationFilter));
        }
Ejemplo n.º 4
0
        //---------------------------------------------------------------------
        //  Register mail-dependent conditions, views and rules
        //---------------------------------------------------------------------
        void IViewsConstructor.RegisterViewsFirstRun()
        {
            string[] applTypes = new string[1] {
                STR.Email
            };
            IFilterRegistry fMgr = Core.FilterRegistry;
            IResource       cond;

            cond = fMgr.CreateConditionTemplate(LocatesInFolderName, LocatesInFolderDeep, applTypes, ConditionOp.In, STR.MAPIFolder, STR.MAPIFolder);
            fMgr.AssociateConditionWithGroup(cond, "Email Conditions");

            cond = fMgr.CreateConditionTemplate(SentViaAccountName, SentViaAccountDeep, applTypes, ConditionOp.In, "EmailAccount", "EmailAccountTo");
            fMgr.AssociateConditionWithGroup(cond, "Address and Contact Conditions");

            cond = fMgr.CreateStandardCondition(HasAttachmentName, HasAttachmentDeep, applTypes, "Attachment", ConditionOp.HasLink);
            fMgr.AssociateConditionWithGroup(cond, "Email Conditions");

            cond = fMgr.CreateConditionTemplate(SentToMailingListXName, SentToMailingListXDeep, applTypes, ConditionOp.In, "MailingList", "To");
            fMgr.AssociateConditionWithGroup(cond, "Address and Contact Conditions");

            IResource myResType = Core.ResourceStore.FindUniqueResource("ResourceType", Core.Props.Name, STR.Email);

            cond = fMgr.CreateStandardCondition(AuthorPostedMailName, AuthorPostedMailDeep, new string[] { "Contact" },
                                                "LinkedResourcesOfType", ConditionOp.In, myResType.ToResourceList());
            fMgr.AssociateConditionWithGroup(cond, "Address and Contact Conditions");
        }
Ejemplo n.º 5
0
        public void RegisterViewsFirstRun()
        {
            //  Link all tasks created so far to the root with the
            //  new predefined link.
            IResourceList list = Core.ResourceStore.GetAllResources("Task");

            foreach (IResource res in list)
            {
                if (res.GetLinksOfType(null, TasksPlugin._linkSuperTask).Count == 0)
                {
                    IResource rootTask = res.GetLinkProp(TasksPlugin._linkTarget);
                    res.SetProp(TasksPlugin._linkSuperTask, rootTask);
                }
            }

            //  Tasks for "Next Week" view.
            IFilterRegistry     fMgr = Core.FilterRegistry;
            IStandardConditions std  = fMgr.Std;

            string[] applType = new string[1] {
                "Task"
            };

            IResource dateRes       = fMgr.CreateConditionTemplate(std.ReceivedInTheTimeSpanXName, std.ReceivedInTheTimeSpanXNameDeep, null, ConditionOp.In, "Date");
            IResource nextWeekCond  = FilterConvertors.InstantiateTemplate(dateRes, "Next Week", null);
            IResource completed     = fMgr.CreateStandardCondition(TasksViewsConstructor.TaskIsCompletedName, TasksViewsConstructor.TaskIsCompletedDeep, applType, "Status", ConditionOp.Eq, "2");
            IResource tasksNextWeek = fMgr.RegisterView("Due Next Week", applType, new IResource[1] {
                nextWeekCond
            }, new IResource[1] {
                completed
            });

            Core.ResourceTreeManager.LinkToResourceRoot(tasksNextWeek, 9);
        }
Ejemplo n.º 6
0
        private static void RegisterRulesActions()
        {
            IResource           res;
            IFilterRegistry     fmgr = Core.FilterRegistry;
            IStandardConditions std  = fmgr.Std;

            //  Register them here since they require live object as parameter
            fmgr.RegisterRuleAction(std.MarkResourceAsImportantActionName, std.MarkResourceAsImportantActionNameDeep, new ImportantRuleAction());
            fmgr.RegisterRuleAction(std.DeleteResourceActionName, std.DeleteResourceActionNameDeep, new DeleteResourceAction());
            fmgr.RegisterRuleAction(std.DeleteResourcePermActionName, std.DeleteResourcePermActionNameDeep, new DeleteResourcePermanentlyAction());
            fmgr.RegisterRuleAction(std.MarkResourceAsReadActionName, std.MarkResourceAsReadActionNameDeep, new MarkMessageAsReadAction());
            fmgr.RegisterRuleAction(std.MarkResourceAsUnreadActionName, std.MarkResourceAsUnreadActionNameDeep, new MarkMessageAsUnreadAction());
            fmgr.RegisterRuleAction(std.ShowDesktopAlertActionName, std.ShowDesktopAlertActionNameDeep, new BalloonNotificationAction());
            fmgr.RegisterRuleAction(std.ShowAsPlainTextActionName, std.ShowAsPlainTextActionNameDeep, new ShowAsPlainTextAction());

            fmgr.RegisterRuleActionTemplate(std.AssignCategoryActionName, std.AssignCategoryActionNameDeep,
                                            new AssignCategoryAction(), ConditionOp.In, "Category");
            fmgr.RegisterRuleActionTemplate(std.AssignCategoryToAuthorActionName, std.AssignCategoryToAuthorActionNameDeep,
                                            new AssignCategoryToMessageAuthorAction(), ConditionOp.In, "Category");
            fmgr.RegisterRuleActionTemplate(std.PlaySoundFromFileActionName, std.PlaySoundFromFileActionNameDeep,
                                            new PlaySoundAction(), ConditionOp.In, "ExternalFile", "Sound files (*.wav)|*.wav|All files(*.*)|*.*");
            fmgr.RegisterRuleActionTemplate(std.DisplayMessageBoxActionName, std.DisplayMessageBoxActionNameDeep,
                                            new MessageBoxNotificationAction(), ConditionOp.Eq);
            fmgr.RegisterRuleActionTemplate(std.RunApplicationActionName, std.RunApplicationActionNameDeep,
                                            new RunApplicationAction(), ConditionOp.In, "ExternalFile", "Execution files (*.exe)|*.exe|All files(*.*)|*.*");

            res = fmgr.RegisterRuleActionTemplate(std.MarkMessageWithFlagActionName, std.MarkMessageWithFlagActionNameDeep,
                                                  new MarkMessageWithFlagAction(), ConditionOp.In, "Flag");
            fmgr.MarkActionTemplateAsSingleSelection(res);

            Core.ActionManager.RegisterLinkClickAction(new EditRuleAction(), FilterManagerProps.RuleResName, null);
        }
Ejemplo n.º 7
0
        public void RegisterFilters(IFilterRegistry filterRegistry)
        {
            ControllerActionFilterCriteria listActionsCriteria = new ControllerActionFilterCriteria();

            listActionsCriteria.AddMethod <SearchController>(p => p.List(null, 0, null));
            filterRegistry.Add(new[] { listActionsCriteria }, typeof(PageSizeActionFilter));
        }
Ejemplo n.º 8
0
        public void RegisterViewsEachRun()
        {
            IFilterRegistry      fMgr     = Core.FilterRegistry;
            INotificationManager notifMgr = Core.NotificationManager;

            string[] _applTypes = new string[] { NntpPlugin._newsArticle };

            //  Conditions/Templates necessary for notification rules.
            IResource template = fMgr.CreateConditionTemplate(AppearedInNewsgroupName, AppearedInNewsgroupDeep,
                                                              _applTypes, ConditionOp.In, NntpPlugin._newsGroup, "Newsgroups");

            fMgr.AssociateConditionWithGroup(template, "News Conditions");

            IResource threadTemplate = fMgr.CreateConditionTemplate(AppearedInThreadName, AppearedInThreadDeep,
                                                                    _applTypes, ConditionOp.In, NntpPlugin._newsArticle, "Reply*");

            fMgr.AssociateConditionWithGroup(threadTemplate, "News Conditions");

            IResource res = fMgr.RegisterCustomCondition(PostInMyThreadName, PostInMyThreadDeep, _applTypes, new RepliesToMyPosts());

            fMgr.AssociateConditionWithGroup(res, "News Conditions");

            res = fMgr.RegisterCustomCondition(PostInFlaggedThreadName, PostInFlaggedThreadDeep, _applTypes, new RepliesToFlaggedPosts());
            fMgr.AssociateConditionWithGroup(res, "News Conditions");

            //  Notifications
            notifMgr.RegisterNotifyMeResourceType(NntpPlugin._newsGroup, NntpPlugin._newsArticle);
            notifMgr.RegisterNotifyMeCondition(NntpPlugin._newsArticle, fMgr.Std.FromContactX, Core.ResourceStore.GetPropId("From"));
            notifMgr.RegisterNotifyMeCondition(NntpPlugin._newsGroup, template, 0);
            notifMgr.RegisterNotifyMeCondition(NntpPlugin._newsArticle, threadTemplate, 0);

            Core.FilterEngine.RegisterRuleApplicableResourceType(NntpPlugin._newsArticle);
        }
Ejemplo n.º 9
0
        public void RegisterViewsFirstRun()
        {
            string[] applType = new string[1] {
                "Contact"
            };
            IResource       res;
            IFilterRegistry fMgr = Core.FilterRegistry;

            //  Conditions/Templates
            res = fMgr.CreateConditionTemplate(ContactInABName, ContactInABNameDeep, applType, ConditionOp.In, "AddressBook", "InAddressBook");
            fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions");
            res = fMgr.CreateStandardCondition(ContactNotInABName, ContactNotInABNameDeep, applType, "InAddressBook", ConditionOp.HasNoProp);
            fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions");

            res = fMgr.CreateConditionTemplate(LastCorrespondenceName, LastCorrespondenceNameDeep, applType, ConditionOp.Eq, "LastCorrespondDate");
            fMgr.AssociateConditionWithGroup(res, "Temporal Conditions");
            IResource condActive = FilterConvertors.InstantiateTemplate(res, "last 30 days", null);

            //  Views
            IResource viewAll    = fMgr.RegisterView("All", applType, (IResource[])null, null);
            IResource viewActive = fMgr.RegisterView("Active", applType, new IResource[1] {
                condActive
            }, null);

            viewAll.SetProp("DefaultSort", "LastName FirstName");
            viewActive.SetProp("DefaultSort", "LastName FirstName");
            Core.ResourceTreeManager.LinkToResourceRoot(viewAll, 10);
            Core.ResourceTreeManager.LinkToResourceRoot(viewActive, 11);

            viewAll.SetProp("DisableDefaultGroupping", true);
            viewActive.SetProp("DisableDefaultGroupping", true);
        }
Ejemplo n.º 10
0
        public void RegisterViewsFirstRun()
        {
            IFilterRegistry mgr = Core.FilterRegistry;
            IResource       res = mgr.CreateStandardCondition(RSSViewsConstructor.PostIsACommentName, RSSViewsConstructor.PostIsACommentDeep,
                                                              new string[] { "RSSItem" }, "FeedComment", ConditionOp.HasLink);

            mgr.AssociateConditionWithGroup(res, RSSViewsConstructor.RSSConditionsGroup);
        }
Ejemplo n.º 11
0
        public void RegisterViewsEachRun()
        {
            IFilterRegistry fMgr = Core.FilterRegistry;
            IResource       res  = fMgr.CreateConditionTemplate(RSSViewsConstructor.FeedInFolderName, RSSViewsConstructor.FeedInFolderDeep,
                                                                null, ConditionOp.In, Props.RSSFeedGroupResource, "RssItem>Parent");

            fMgr.AssociateConditionWithGroup(res, RSSViewsConstructor.RSSConditionsGroup);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Registers the specified filter for the given controller action.
        /// </summary>
        /// <typeparam name="TController">The type of the controller.</typeparam>
        /// <typeparam name="TFilter">The type of the filter.</typeparam>
        /// <param name="instance">The instance.</param>
        /// <param name="action">The controller action method.</param>
        /// <returns></returns>
        public static IFilterRegistry Register <TController, TFilter>(this IFilterRegistry instance, Expression <Action <TController> > action)
            where TController : Controller
            where TFilter : IMvcFilter
        {
            Invariant.IsNotNull(instance, "instance");

            return(Register <TController, TFilter>(instance, action, filter => { }));
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Registers the specified filters for the given controller action.
        /// </summary>
        /// <typeparam name="TController">The type of the controller.</typeparam>
        /// <typeparam name="TFilter1">The type of the filter1.</typeparam>
        /// <typeparam name="TFilter2">The type of the filter2.</typeparam>
        /// <param name="instance">The instance.</param>
        /// <param name="action">The controller action method.</param>
        /// <returns></returns>
        public static IFilterRegistry Register <TController, TFilter1, TFilter2>(this IFilterRegistry instance, Expression <Action <TController> > action)
            where TController : Controller
            where TFilter1 : IMvcFilter
            where TFilter2 : IMvcFilter
        {
            Invariant.IsNotNull(instance, "instance");

            return(instance.Register(action, CreateFilterFactories(instance, typeof(TFilter1), typeof(TFilter2)).ToArray()));
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Registers the specified filters for the given controller.
        /// </summary>
        /// <typeparam name="TController">The type of the controller.</typeparam>
        /// <typeparam name="TFilter1">The type of the filter1.</typeparam>
        /// <typeparam name="TFilter2">The type of the filter2.</typeparam>
        /// <param name="instance">The instance.</param>
        /// <returns></returns>
        public static IFilterRegistry Register <TController, TFilter1, TFilter2>([NotNull] this IFilterRegistry instance)
            where TController : Controller
            where TFilter1 : IMvcFilter
            where TFilter2 : IMvcFilter
        {
            Invariant.IsNotNull(instance, "instance");

            return(instance.Register <TController, IMvcFilter>(CreateFilterFactories(instance, typeof(TFilter1), typeof(TFilter2)).ToArray()));
        }
Ejemplo n.º 15
0
        public void RegisterFilters(IFilterRegistry filterRegistry)
        {
            ControllerActionFilterCriteria criteria = new ControllerActionFilterCriteria();

            criteria.AddMethod <UserController>(u => u.ChangePassword(null));
            criteria.AddMethod <UserController>(u => u.ChangePasswordSave(null, null));

            filterRegistry.Add(new[] { criteria }, typeof(AuthorizationFilter));
        }
Ejemplo n.º 16
0
        public void RegisterFilters(IFilterRegistry filterRegistry)
        {
            ControllerActionFilterCriteria ajaxActionCriteria = new ControllerActionFilterCriteria();

            ajaxActionCriteria.AddMethod <ScheduleItemController>(si => si.List(null));
            ajaxActionCriteria.AddMethod <ScheduleItemController>(si => si.ListByEvent(null, null));
            ajaxActionCriteria.AddMethod <ScheduleItemController>(si => si.ListByEventAndTag(null, null, null));
            filterRegistry.Add(new[] { ajaxActionCriteria }, typeof(AjaxActionFilter));
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Registers the specified filters for the given controller types.
        /// </summary>
        /// <typeparam name="TFilter1">The type of the filter1.</typeparam>
        /// <typeparam name="TFilter2">The type of the filter2.</typeparam>
        /// <param name="instance">The instance.</param>
        /// <param name="typeCatalog">The controller types.</param>
        /// <returns></returns>
        public static IFilterRegistry Register <TFilter1, TFilter2>(this IFilterRegistry instance, TypeCatalog typeCatalog)
            where TFilter1 : IMvcFilter
            where TFilter2 : IMvcFilter
        {
            Invariant.IsNotNull(instance, "instance");
            Invariant.IsNotNull(typeCatalog, "typeCatalog");

            return(Register(instance, typeCatalog, typeof(TFilter1), typeof(TFilter2)));
        }
Ejemplo n.º 18
0
        public MockPluginEnvironment(IResourceStore storage)
        {
            _picoContainer     = new DefaultPicoContainer();
            _mockPicoContainer = new DefaultPicoContainer(_picoContainer);

            Storage = storage;
            if (storage != null)
            {
                _picoContainer.RegisterComponentInstance(storage);
            }
            File.Delete(".\\MockPluginEnvironment.ini");
            _settingStore = new Ini.IniFile(".\\MockPluginEnvironment.ini");

            DynamicMock actionManagerMock = new DynamicMock(typeof(IActionManager));

            actionManagerMock.SetupResult("GetKeyboardShortcut", "", typeof(IAction));
            _actionManager = (IActionManager)actionManagerMock.MockInstance;

            _uiManager       = (IUIManager) new DynamicMock(typeof(IUIManager)).MockInstance;
            _pluginLoader    = (IPluginLoader) new DynamicMock(typeof(IPluginLoader)).MockInstance;
            _resourceBrowser = (IResourceBrowser) new DynamicMock(typeof(IResourceBrowser)).MockInstance;
            _tabManager      = new MockTabManager();
            _resourceAP      = new MockAsyncProcessor();
            _networkAP       = new MockAsyncProcessor();
            _uiAP            = new MockAsyncProcessor();

            DynamicMock resourceIconManagerMock = new DynamicMock(typeof(IResourceIconManager));

            resourceIconManagerMock.SetupResult("IconColorDepth", ColorDepth.Depth8Bit);
            resourceIconManagerMock.SetupResult("GetIconIndex", 0, typeof(IResource));
            _resourceIconManager = (IResourceIconManager)resourceIconManagerMock.MockInstance;

            _notificationManager  = (INotificationManager) new DynamicMock(typeof(INotificationManager)).MockInstance;
            _textIndexManager     = (ITextIndexManager) new DynamicMock(typeof(ITextIndexManager)).MockInstance;
            _messageFormatter     = (IMessageFormatter) new DynamicMock(typeof(IMessageFormatter)).MockInstance;
            _displayColumnManager = (IDisplayColumnManager) new DynamicMock(typeof(IDisplayColumnManager)).MockInstance;

//            DynamicMock filterManagerMock = new DynamicMock( typeof(IFilterRegistry) );
            DynamicMock filterEngineMock = new DynamicMock(typeof(IFilterEngine));

            filterEngineMock.SetupResult("ExecRules", true, typeof(string), typeof(IResource));

            DynamicMock filterManagerMock = new DynamicMock(typeof(IFilterRegistry));

            _filterRegistry = (IFilterRegistry)filterManagerMock.MockInstance;

            _rcManager             = (IRemoteControlManager) new DynamicMock(typeof(IRemoteControlManager)).MockInstance;
            _trayIconManager       = (ITrayIconManager) new DynamicMock(typeof(ITrayIconManager)).MockInstance;
            _formattingRuleManager = (IFormattingRuleManager) new DynamicMock(typeof(IFormattingRuleManager)).MockInstance;
            _expirationRuleManager = (IExpirationRuleManager) new DynamicMock(typeof(IExpirationRuleManager)).MockInstance;
            _filteringFormsManager = (IFilteringFormsManager) new DynamicMock(typeof(IFilteringFormsManager)).MockInstance;
            _searchQueryExtensions = (ISearchQueryExtensions) new DynamicMock(typeof(ISearchQueryExtensions)).MockInstance;
            _filterEngine          = (IFilterEngine) new DynamicMock(typeof(IFilterEngine)).MockInstance;

            theInstance = this;
        }
Ejemplo n.º 19
0
        /// <summary>
        /// Registers and configures the specified filter for the given controller action.
        /// </summary>
        /// <typeparam name="TController">The type of the controller.</typeparam>
        /// <typeparam name="TFilter">The type of the filter.</typeparam>
        /// <param name="instance">The instance.</param>
        /// <param name="action">The controller action method.</param>
        /// <param name="configureFilter">The configure filter.</param>
        /// <returns></returns>
        public static IFilterRegistry Register <TController, TFilter>(this IFilterRegistry instance, Expression <Action <TController> > action, Action <TFilter> configureFilter)
            where TController : Controller
            where TFilter : IMvcFilter
        {
            Invariant.IsNotNull(instance, "instance");
            Invariant.IsNotNull(action, "action");
            Invariant.IsNotNull(configureFilter, "configureFilter");

            return(instance.Register(action, CreateAndConfigureFilterFactory(instance, configureFilter)));
        }
Ejemplo n.º 20
0
        private static void RegisterCustomConditions()
        {
            IResource       res;
            IFilterRegistry fMgr = Core.FilterRegistry;

            #region Core.FilterRegistry.Std.ResourceIsCategorized Cleaning
            //  Fix previous version of this condition (it was implemented as
            //  predicate-type).
            IResourceList old = Core.ResourceStore.FindResources(FilterManagerProps.ConditionResName, "Name", Core.FilterRegistry.Std.ResourceIsCategorizedName);
            old = old.Intersect(Core.ResourceStore.FindResources(FilterManagerProps.ConditionResName, "ConditionType", "predicate"), true);
            old.DeleteAll();
            #endregion Core.FilterRegistry.Std.ResourceIsCategorized Cleaning

            fMgr.RegisterCustomCondition(fMgr.Std.ResourceIsCategorizedName, fMgr.Std.ResourceIsCategorizedNameDeep,
                                         null, new ResourceIsCategorized());
            res = fMgr.RegisterCustomCondition(fMgr.Std.ResourceHasEmptyContentName, fMgr.Std.ResourceHasEmptyContentNameDeep,
                                               null, new ResourceHasEmptyContent());
            fMgr.MarkConditionOnlyForRule(res);

            res = fMgr.CreateStandardCondition(FilterManagerStandards.DummyConditionName, FilterManagerStandards.DummyConditionName,
                                               null, "Id", ConditionOp.Gt, "0");
            res.SetProp("Invisible", true);

            res = fMgr.CreateCustomConditionTemplate(fMgr.Std.InTheCategoryAndSubcategoriesXName, fMgr.Std.InTheCategoryAndSubcategoriesXNameDeep,
                                                     null, new MatchCategoryAndSubcategories(), ConditionOp.In, "Category", "Category");
            fMgr.AssociateConditionWithGroup(res, "Category Conditions");

            res = fMgr.CreateCustomConditionTemplate(fMgr.Std.FromToCCContactXName, fMgr.Std.FromToCCContactXNameDeep,
                                                     null, new CorrespondenceOfContact(), ConditionOp.In, "Contact", "Category");
            fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions");

            res = fMgr.CreateCustomConditionTemplate(fMgr.Std.FromToContactXName, fMgr.Std.FromToContactXNameDeep,
                                                     null, new FromToOfContact(), ConditionOp.In, "Contact", "Category");
            fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions");

            res = fMgr.CreateCustomConditionTemplate(fMgr.Std.ResourceContainsTextXName, fMgr.Std.ResourceContainsTextXNameDeep,
                                                     null, new ResourceContainsText(), ConditionOp.Eq, "Subject");
            fMgr.AssociateConditionWithGroup(res, "Text Query Conditions");
            fMgr.MarkConditionOnlyForRule(res);

            res = fMgr.CreateCustomConditionTemplate(fMgr.Std.MessageIsInThreadOfXName, fMgr.Std.MessageIsInThreadOfXNameDeep,
                                                     null, new MessageIsInThreadOf(), ConditionOp.In, "Email", "Category");
            res.SetProp("Invisible", true);

            //  Interversion consistency. In old build this condition was
            //  registered in other plugin(s). Since they now refer to Std,
            //  we have to register it again.
            res = fMgr.CreateConditionTemplate(fMgr.Std.FromContactXName, fMgr.Std.FromContactXNameDeep, null, ConditionOp.In, "Contact", "From");
            fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions");

            //  Upgrade for old versions.
            res = fMgr.CreateConditionTemplate(fMgr.Std.DeletedInTheTimeSpanXName, fMgr.Std.DeletedInTheTimeSpanXNameDeep, null, ConditionOp.Eq, "DelDate");
            fMgr.AssociateConditionWithGroup(res, "Temporal Conditions");
        }
Ejemplo n.º 21
0
        public static IFilterRegistry Register <TController, TFilter>([NotNull] this IFilterRegistry instance, [NotNull] Action <TFilter> configureFilter)
            where TController : Controller
            where TFilter : IMvcFilter
        {
            Invariant.IsNotNull(instance, "instance");
            Invariant.IsNotNull(configureFilter, "configureFilter");

            instance.Register <TController, IMvcFilter>(CreateAndConfigureFilterFactory(instance, configureFilter));

            return(instance);
        }
Ejemplo n.º 22
0
        public void RegisterViewsFirstRun()
        {
            IResource       res;
            IFilterRegistry fMgr = Core.FilterRegistry;

            //  Conditions/Templates
            IResource myResType = Core.ResourceStore.FindUniqueResource("ResourceType", "Name", NntpPlugin._newsArticle);

            res = fMgr.CreateStandardCondition(AuthorPostedArticleName, AuthorPostedArticleDeep, new string[] { "Contact" },
                                               "LinkedResourcesOfType", ConditionOp.In, myResType.ToResourceList());
            fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions");
        }
Ejemplo n.º 23
0
        void IViewsConstructor.RegisterViewsFirstRun()
        {
            IResource       res;
            IFilterRegistry fMgr = Core.FilterRegistry;

            //  Conditions/Templates
            IResource myResType = Core.ResourceStore.FindUniqueResource("ResourceType", Core.Props.Name, STR.Email);

            res = fMgr.CreateStandardCondition(OutlookViewsInitializer.AuthorPostedMailName, OutlookViewsInitializer.AuthorPostedMailDeep,
                                               new string[] { "Contact" }, "LinkedResourcesOfType", ConditionOp.In, myResType.ToResourceList());
            fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions");
        }
Ejemplo n.º 24
0
        public void RegisterFilters(IFilterRegistry filterRegistry)
        {
            filterRegistry.Add(Enumerable.Empty <IFilterCriteria>(), typeof(PluginTemplateFilter));

            ControllerActionFilterCriteria ajaxActionCriteria = new ControllerActionFilterCriteria();

            ajaxActionCriteria.AddMethod <PluginController>(p => p.List(null));
            ajaxActionCriteria.AddMethod <PluginController>(p => p.RefreshListNotInstalled());
            ajaxActionCriteria.AddMethod <PluginController>(p => p.SetEnabled(null, false, null, null));
            ajaxActionCriteria.AddMethod <PluginController>(p => p.Install(null, null));
            ajaxActionCriteria.AddMethod <PluginController>(p => p.Uninstall(null, null));
            filterRegistry.Add(new[] { ajaxActionCriteria }, typeof(AjaxActionFilter));
        }
Ejemplo n.º 25
0
        private static IFilterRegistry Register(IFilterRegistry instance, IEnumerable <Type> typeCatalog, params Type[] filterTypes)
        {
            IList <Type> controllerTypes = typeCatalog.ToList();

            EnsureControllerTypes(controllerTypes);

            foreach (Type itemType in controllerTypes.Select(controllerType => genericControllerItemType.MakeGenericType(controllerType)))
            {
                instance.Items.Add(Activator.CreateInstance(itemType, new object[] { CreateFilterFactories(instance, filterTypes) }) as FilterRegistryItem);
            }

            return(instance);
        }
Ejemplo n.º 26
0
        public void RegisterFilters(IFilterRegistry filterRegistry)
        {
            filterRegistry.Add(new[] { new DataFormatFilterCriteria("SIGN") }, typeof(SignResultActionFilter));
            filterRegistry.Add(new[] { new DataFormatFilterCriteria("ICS") }, typeof(IcsResultActionFilter));

            ControllerActionFilterCriteria ajaxActionCriteria = new ControllerActionFilterCriteria();

            ajaxActionCriteria.AddMethod <ScheduleItemController>(si => si.List(null));
            ajaxActionCriteria.AddMethod <ScheduleItemController>(si => si.ListByEvent(null, null));
            ajaxActionCriteria.AddMethod <ScheduleItemController>(si => si.ListByUser(null, null));
            ajaxActionCriteria.AddMethod <ScheduleItemController>(si => si.ListByEventAndTag(null, null, null));
            filterRegistry.Add(new[] { ajaxActionCriteria }, typeof(AjaxActionFilter));
        }
Ejemplo n.º 27
0
        /// <summary>
        /// Method is called when a plugin that implements this interface is loaded first time.
        /// </summary>
        public void  RegisterViewsFirstRun()
        {
            IResource res;

            string[]        applType  = new string[] { "RSSItem" }, contactType = new string[] { "Contact" };
            IFilterRegistry fMgr      = Core.FilterRegistry;
            IResource       myResType = Core.ResourceStore.FindUniqueResource("ResourceType", "Name", "RSSItem");

            res = fMgr.CreateStandardCondition(AuthorWrotePostName, AuthorWrotePostDeep, contactType,
                                               "LinkedResourcesOfType", ConditionOp.In, myResType.ToResourceList());
            fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions");

            res = fMgr.CreateStandardCondition(AuthorHasFeedName, AuthorHasFeedDeep, contactType, "Weblog", ConditionOp.HasLink);
            fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions");

            res = fMgr.CreateStandardCondition(PostHasEnclosuredName, PostHasEnclosuredDeep, applType, "EnclosureURL", ConditionOp.HasProp);
            fMgr.AssociateConditionWithGroup(res, RSSConditionsGroup);

            res = fMgr.CreateStandardCondition(PostHasCommentName, PostHasCommentDeep, applType, "CommentCount", ConditionOp.Gt, "0");
            fMgr.AssociateConditionWithGroup(res, RSSConditionsGroup);

            res = fMgr.CreateStandardCondition(PostIsACommentName, PostIsACommentDeep, applType, "FeedComment", ConditionOp.HasLink);
            fMgr.AssociateConditionWithGroup(res, RSSConditionsGroup);

            res = fMgr.CreateStandardCondition(DownloadFailedName, DownloadFailedDeep, applType,
                                               "EnclosureDownloadingState", ConditionOp.In, "3");
            fMgr.RenameCondition("Enclosure downloading failed", "Enclosure downloading is failed");
            fMgr.AssociateConditionWithGroup(res, RSSConditionsGroup);

            res = fMgr.CreateStandardCondition(DownloadCompletedName, DownloadCompletedDeep, applType,
                                               "EnclosureDownloadingState", ConditionOp.In, "2");
            fMgr.RenameCondition("Enclosure downloading completed", "Enclosure downloading is completed");
            fMgr.AssociateConditionWithGroup(res, RSSConditionsGroup);

            res = fMgr.CreateStandardCondition(DownloadNotName, DownloadNotDeep, applType,
                                               "EnclosureDownloadingState", ConditionOp.In, "0");
            fMgr.RenameCondition("Enclosure not downloaded", "Enclosure is not downloaded");
            fMgr.AssociateConditionWithGroup(res, RSSConditionsGroup);

            res = fMgr.CreateStandardCondition(DownloadPlannedName, DownloadPlannedDeep, applType,
                                               "EnclosureDownloadingState", ConditionOp.In, "1", "4");
            fMgr.RenameCondition("Enclosure downloading planned", "Enclosure downloading is planned");
            fMgr.AssociateConditionWithGroup(res, RSSConditionsGroup);

            res = fMgr.CreateConditionTemplate(EnclosureSizeName, EnclosureSizeDeep, applType,
                                               ConditionOp.InRange, "EnclosureSize", "0", Int32.MaxValue.ToString());
            fMgr.AssociateConditionWithGroup(res, RSSConditionsGroup);

            res = fMgr.CreateConditionTemplate(EnclosureTypeName, EnclosureTypeDeep, applType, ConditionOp.Eq, "EnclosureType");
            fMgr.AssociateConditionWithGroup(res, RSSConditionsGroup);
        }
Ejemplo n.º 28
0
        private static void RegisterViews()
        {
            IFilterRegistry fMgr = Core.FilterRegistry;

            if (Core.ResourceStore.FindResources(FilterManagerProps.ViewResName, "DeepName", "Deleted Resources").Count == 0)
            {
                Trace.WriteLine("ViewsInitializer -- DeletedResources view is not found");
                IResource res = fMgr.RegisterView("Deleted Resources", new [] { fMgr.Std.ResourceIsDeleted }, null);
                fMgr.AssociateViewWithFolder(res, null, 3);
                fMgr.SetVisibleInAllTabs(res);
                res.SetProp(Core.Props.ShowDeletedItems, true);
                res.SetProp("IsLiveMode", true);
            }
        }
Ejemplo n.º 29
0
        public void RegisterFilters(IFilterRegistry registry)
        {
            registry.Add(Enumerable.Empty <IFilterCriteria>(), typeof(AreaListActionFilter));
            registry.Add(Enumerable.Empty <IFilterCriteria>(), typeof(TagCloudActionFilter));
            registry.Add(Enumerable.Empty <IFilterCriteria>(), typeof(SidebarActionFilter));

            ControllerActionFilterCriteria itemActionCriteria = new ControllerActionFilterCriteria();

            itemActionCriteria.AddMethod <PostController>(p => p.Item(null));
            itemActionCriteria.AddMethod <PostController>(p => p.AddComment(null, null, null, null, null, null));
            registry.Add(new[] { itemActionCriteria }, typeof(PostWebViewBugResultFilter));

            ControllerActionFilterCriteria listActionCriteria = new ControllerActionFilterCriteria();

            listActionCriteria.AddMethod <PostController>(p => p.List(null, 0, null));
            listActionCriteria.AddMethod <PostController>(p => p.ListByArchive(0, null));
            listActionCriteria.AddMethod <PostController>(p => p.ListByArea(null, 0, null, null));
            listActionCriteria.AddMethod <PostController>(p => p.ListBySearch(null, 0, null, null));
            listActionCriteria.AddMethod <PostController>(p => p.ListByTag(null, 0, null, null));
            registry.Add(new IFilterCriteria[] { listActionCriteria, new DataFormatFilterCriteria("RSS") }, typeof(PostRssViewBugResultFilter));
            registry.Add(new IFilterCriteria[] { listActionCriteria, new DataFormatFilterCriteria("ATOM") }, typeof(PostAtomViewBugResultFilter));

            ControllerActionFilterCriteria listActionsCriteria = new ControllerActionFilterCriteria();

            listActionsCriteria.AddMethod <PostController>(p => p.List(null, 0, null));
            listActionsCriteria.AddMethod <PostController>(p => p.ListByArchive(0, null));
            listActionsCriteria.AddMethod <PostController>(p => p.ListByArea(null, 0, null, null));
            listActionsCriteria.AddMethod <PostController>(p => p.ListByAreaAndTag(null, 0, null, null, null));
            listActionsCriteria.AddMethod <PostController>(p => p.ListBySearch(null, 0, null, null));
            listActionsCriteria.AddMethod <PostController>(p => p.ListByTag(null, 0, null, null));
            listActionsCriteria.AddMethod <PostController>(p => p.ListWithDrafts(null, 0));
            registry.Add(new[] { listActionsCriteria }, typeof(MIXVideos.Oxite.Filters.PageSizeActionFilter));

            ControllerActionFilterCriteria outputCacheCriteria = new ControllerActionFilterCriteria();

            outputCacheCriteria.AddMethod <PostController>(c => c.List(null, 0, null));
            outputCacheCriteria.AddMethod <PostController>(c => c.ListByArchive(0, null));
            outputCacheCriteria.AddMethod <PostController>(c => c.ListByArea(null, 0, null, null));
            outputCacheCriteria.AddMethod <PostController>(c => c.ListBySearch(null, 0, null, null));
            outputCacheCriteria.AddMethod <PostController>(c => c.ListByTag(null, 0, null, null));
            outputCacheCriteria.AddMethod <TagController>(c => c.Cloud());
            outputCacheCriteria.AddMethod <TagController>(c => c.CloudForArea(null));
            registry.Add(new[] { outputCacheCriteria }, typeof(OneHourOutputCacheFilter));

            ControllerActionFilterCriteria fileFeedActionCriteria = new ControllerActionFilterCriteria();

            fileFeedActionCriteria.AddMethod <FeedController>(f => f.List(null));
            registry.Add(new IFilterCriteria[] { fileFeedActionCriteria, new DataFormatFilterCriteria("RSS") }, typeof(PostRssViewBugResultFilter));
        }
Ejemplo n.º 30
0
        public void Execute(IDictionary <string, object> state)
        {
            IModulesLoaded        modulesLoaded  = container.Resolve <IModulesLoaded>();
            RouteCollection       routes         = container.Resolve <RouteCollection>();
            IFilterRegistry       filterRegistry = container.Resolve <FilterRegistry>();
            ModelBinderDictionary modelBinders   = container.Resolve <ModelBinderDictionary>();

            filterRegistry.Clear();

            modelBinders.Clear();

            //todo: (nheskew) get plugin routes registered on load in the right order instead of just clearing the routes before module init
            routes.Clear();

            foreach (Module module in container.Resolve <IModuleService>().GetModules())
            {
                IOxiteModule moduleInstance = modulesLoaded.Load(module);

                if (moduleInstance != null)
                {
                    moduleInstance.RegisterWithContainer();
                    moduleInstance.Initialize();
                    moduleInstance.RegisterFilters(filterRegistry);
                    moduleInstance.RegisterModelBinders(modelBinders);

                    container.RegisterInstance(modulesLoaded);
                }
            }

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.LoadFromModules(modulesLoaded);

            routes.LoadCatchAllFromModules(modulesLoaded);

            container.RegisterInstance(filterRegistry);

            ////TODO: (erikpo) Rename IOxiteModule to IOxiteBackgroundService
            //IModuleRegistry moduleRegistry = container.Resolve<ModuleRegistry>();

            //moduleRegistry.Clear();

            //container.Resolve<IRegisterModules>().RegisterModules(moduleRegistry);

            //foreach (IOxiteModule module in moduleRegistry.GetModules())
            //    module.Start();

            //container.RegisterInstance(moduleRegistry);
        }
 public RegisterFilters(IFilterRegistry filterRegistry)
     : base(filterRegistry)
 {
 }
Ejemplo n.º 32
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FilterRegistry"/> class.
 /// </summary>
 /// <param name="filterRegistry">The filter registry</param>
 public FilterProvider(IFilterRegistry filterRegistry)
 {
     this.filterRegistry = filterRegistry;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="RegisterFiltersBase"/> class.
        /// </summary>
        /// <param name="filterRegistry">The filter registry.</param>
        protected RegisterFiltersBase(IFilterRegistry filterRegistry)
        {
            Invariant.IsNotNull(filterRegistry, "filterRegistry");

            FilterRegistry = filterRegistry;
        }
 public RegisterFiltersBaseTestDouble(IFilterRegistry filterRegistry)
     : base(filterRegistry)
 {
 }
Ejemplo n.º 35
0
 public ConfigureFilters(IFilterRegistry registry)
     : base(registry)
 {
 }
Ejemplo n.º 36
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ConfigureFiltersBase"/> class.
        /// </summary>
        /// <param name="registry">The registry.</param>
        protected ConfigureFiltersBase(IFilterRegistry registry)
        {
            Invariant.IsNotNull(registry, "registry");

            Registry = registry;
        }
 public ExtendedControllerActionInvokerTestDouble(IServiceLocator locator, IFilterRegistry filterRegistry)
     : base(locator, filterRegistry)
 {
 }
 public ConfigureFiltersBaseTestDouble(IFilterRegistry registry)
     : base(registry)
 {
 }