示例#1
0
        public void WithGlobalManagerFilter_ManyFilter_Enable()
        {
            TestContext.DeleteAll(x => x.Inheritance_Interface_Entities);
            TestContext.Insert(x => x.Inheritance_Interface_Entities, 10);

            using (var ctx = new TestContext())
            {
                QueryFilterHelper.CreateGlobalManagerDbSetFilter(false, enableFilter1: true, enableFilter2: true, enableFilter3: true, enableFilter4: true);
                QueryDbSetFilterManager.InitilizeGlobalFilter(ctx);

                Assert.AreEqual(35, ctx.Inheritance_Interface_Entities.Sum(x => x.ColumnInt));

                QueryFilterHelper.ClearGlobalManagerDbSetFilter();
            }
        }
示例#2
0
        public void WithGlobalManagerFilter_SingleFilter_Disabled()
        {
            TestContext.DeleteAll(x => x.Inheritance_Interface_Entities);
            TestContext.Insert(x => x.Inheritance_Interface_Entities, 10);

            using (var ctx = new TestContext())
            {
                QueryFilterHelper.CreateGlobalManagerDbSetFilter(true, enableFilter1: false);
                QueryDbSetFilterManager.InitilizeGlobalFilter(ctx);

                Assert.AreEqual(44, ctx.Inheritance_Interface_Entities.DbSetFilter(
                                    QueryFilterHelper.Filter.Filter1,
                                    QueryFilterHelper.Filter.Filter2,
                                    QueryFilterHelper.Filter.Filter3,
                                    QueryFilterHelper.Filter.Filter4).Sum(x => x.ColumnInt));

                QueryFilterHelper.ClearGlobalManagerDbSetFilter();
            }
        }
        public static void CreateGlobalManagerDbSetFilter(bool isEnabled, string fixResharper = null, bool?enableFilter1 = null, bool?enableFilter2 = null, bool?enableFilter3 = null, bool?enableFilter4 = null, bool?excludeClass = null, bool?excludeInterface = null, bool?excludeBaseClass = null, bool?excludeBaseInterface = null, bool?includeClass = null, bool?includeInterface = null, bool?includeBaseClass = null, bool?includeBaseInterface = null)
        {
            ClearGlobalManagerFilter();
#if EFCORE
            // TODO: Remove this when cast issue will be fixed
            QueryFilterManager.GlobalFilters.Clear();
            QueryFilterManager.GlobalInitializeFilterActions.Clear();
#endif
            if (enableFilter1 != null)
            {
                QueryDbSetFilterManager.Filter <Inheritance_Interface_Entity>(Filter.Filter1, entities => entities.Where(x => x.ColumnInt != 1), isEnabled);
                if (!isEnabled && enableFilter1.Value)
                {
                    QueryDbSetFilterManager.Filter(Filter.Filter1).IsDefaultEnabled = true;
                }
                else if (isEnabled && !enableFilter1.Value)
                {
                    QueryDbSetFilterManager.Filter(Filter.Filter1).IsDefaultEnabled = false;
                }
            }
            if (enableFilter2 != null)
            {
                QueryDbSetFilterManager.Filter <Inheritance_Interface_IEntity>(Filter.Filter2, entities => entities.Where(x => x.ColumnInt != 2), isEnabled);
                if (!isEnabled && enableFilter2.Value)
                {
                    QueryDbSetFilterManager.Filter(Filter.Filter2).IsDefaultEnabled = true;
                }
                else if (isEnabled && !enableFilter2.Value)
                {
                    QueryDbSetFilterManager.Filter(Filter.Filter2).IsDefaultEnabled = false;
                }
            }
            if (enableFilter3 != null)
            {
                QueryDbSetFilterManager.Filter <Inheritance_Interface_Base>(Filter.Filter3, entities => entities.Where(x => x.ColumnInt != 3), isEnabled);
                if (!isEnabled && enableFilter3.Value)
                {
                    QueryDbSetFilterManager.Filter(Filter.Filter3).IsDefaultEnabled = true;
                }
                else if (isEnabled && !enableFilter3.Value)
                {
                    QueryDbSetFilterManager.Filter(Filter.Filter3).IsDefaultEnabled = false;
                }
            }
            if (enableFilter4 != null)
            {
                QueryDbSetFilterManager.Filter <Inheritance_Interface_IBase>(Filter.Filter4, entities => entities.Where(x => x.ColumnInt != 4), isEnabled);
                if (!isEnabled && enableFilter4.Value)
                {
                    QueryDbSetFilterManager.Filter(Filter.Filter4).IsDefaultEnabled = true;
                }
                else if (isEnabled && !enableFilter4.Value)
                {
                    QueryDbSetFilterManager.Filter(Filter.Filter4).IsDefaultEnabled = false;
                }
            }

            if (excludeClass != null && excludeClass.Value)
            {
                QueryDbSetFilterManager.Filter(Filter.Filter1).Disable(typeof(Inheritance_Interface_Entity));
            }

            if (excludeInterface != null && excludeInterface.Value)
            {
                QueryDbSetFilterManager.Filter(Filter.Filter2).Disable(typeof(Inheritance_Interface_IEntity));
            }

            if (excludeBaseClass != null && excludeBaseClass.Value)
            {
                QueryDbSetFilterManager.Filter(Filter.Filter3).Disable(typeof(Inheritance_Interface_Base));
            }

            if (excludeBaseInterface != null && excludeBaseInterface.Value)
            {
                QueryDbSetFilterManager.Filter(Filter.Filter4).Disable(typeof(Inheritance_Interface_IBase));
            }

            if (includeClass != null && includeClass.Value)
            {
                QueryDbSetFilterManager.Filter(Filter.Filter1).Enable(typeof(Inheritance_Interface_IEntity));
            }

            if (includeInterface != null && includeInterface.Value)
            {
                QueryDbSetFilterManager.Filter(Filter.Filter2).Enable(typeof(Inheritance_Interface_IEntity));
            }

            if (includeBaseClass != null && includeBaseClass.Value)
            {
                QueryDbSetFilterManager.Filter(Filter.Filter3).Enable(typeof(Inheritance_Interface_Base));
            }

            if (includeBaseInterface != null && includeBaseInterface.Value)
            {
                QueryDbSetFilterManager.Filter(Filter.Filter4).Enable(typeof(Inheritance_Interface_IBase));
            }
        }