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(); } }
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)); } }