internal DataFilterConfiguration(DataFilterConfiguration filterToClone) : this(filterToClone.FilterName, filterToClone.IsEnabled) { foreach (var filterParameter in filterToClone.FilterParameters) { FilterParameters[filterParameter.Key] = filterParameter.Value; } }
/// <inheritdoc/> public IDisposable EnableFilter(params string[] filterNames) { //TODO: Check if filters exists? var enabledFilters = new List <string>(); foreach (var filterName in filterNames) { var filterIndex = GetFilterIndex(filterName); if (!_filters[filterIndex].IsEnabled) { enabledFilters.Add(filterName); _filters[filterIndex] = new DataFilterConfiguration(_filters[filterIndex], true); } } enabledFilters.ForEach(ApplyEnableFilter); return(new DisposeAction(() => DisableFilter(enabledFilters.ToArray()))); }
private void ChangeFilterIsEnabledIfNotOverrided(List <DataFilterConfiguration> filterOverrides, string filterName, bool isEnabled) { if (filterOverrides.Any(f => f.FilterName == filterName)) { return; } var index = _filters.FindIndex(f => f.FilterName == filterName); if (index < 0) { return; } if (_filters[index].IsEnabled == isEnabled) { return; } _filters[index] = new DataFilterConfiguration(filterName, isEnabled); }
/// <summary> /// 启用数据过滤器 /// </summary> /// <param name="filterNames">要启用的过滤器名</param> /// <returns></returns> public IDisposable EnableFilter(params string[] filterNames) { //TODO: Check if filters exists? // 将要启用的过滤器放到这个list里面 var enabledFilters = new List <string>(); // 查找要启用的过滤器,如果过滤器没启用添加到要启用的集合里面去 // 并且重新初始化这个过滤器。 foreach (var filterName in filterNames) { var filterIndex = GetFilterIndex(filterName); if (!_filters[filterIndex].IsEnabled) { enabledFilters.Add(filterName); _filters[filterIndex] = new DataFilterConfiguration(_filters[filterIndex], true); } } // 启用集合里面的过滤器 enabledFilters.ForEach(ApplyEnableFilter); return(new DisposeAction(() => DisableFilter(enabledFilters.ToArray()))); }
private void ChangeFilterIsEnabledIfNotOverrided(List<DataFilterConfiguration> filterOverrides, string filterName, bool isEnabled) { if (filterOverrides.Any(f => f.FilterName == filterName)) { return; } var index = _filters.FindIndex(f => f.FilterName == filterName); if (index < 0) { return; } if (_filters[index].IsEnabled == isEnabled) { return; } _filters[index] = new DataFilterConfiguration(filterName, isEnabled); }
/// <inheritdoc/> public IDisposable SetFilterParameter(string filterName, string parameterName, object value) { var filterIndex = GetFilterIndex(filterName); var newfilter = new DataFilterConfiguration(_filters[filterIndex]); //Store old value object oldValue = null; var hasOldValue = newfilter.FilterParameters.ContainsKey(parameterName); if (hasOldValue) { oldValue = newfilter.FilterParameters[parameterName]; } newfilter.FilterParameters[parameterName] = value; _filters[filterIndex] = newfilter; ApplyFilterParameterValue(filterName, parameterName, value); return new DisposeAction(() => { //Restore old value if (hasOldValue) { SetFilterParameter(filterName, parameterName, oldValue); } }); }
/// <inheritdoc/> public IDisposable EnableFilter(params string[] filterNames) { //TODO: Check if filters exists? var enabledFilters = new List<string>(); foreach (var filterName in filterNames) { var filterIndex = GetFilterIndex(filterName); if (!_filters[filterIndex].IsEnabled) { enabledFilters.Add(filterName); _filters[filterIndex] = new DataFilterConfiguration(_filters[filterIndex], true); } } enabledFilters.ForEach(ApplyEnableFilter); return new DisposeAction(() => DisableFilter(enabledFilters.ToArray())); }
/// <inheritdoc/> public void SetFilterParameter(string filterName, string parameterName, object value) { var filterIndex = GetFilterIndex(filterName); var newfilter = new DataFilterConfiguration(_filters[filterIndex]); newfilter.FilterParameters[parameterName] = value; _filters[filterIndex] = newfilter; ApplyFilterParameterValue(filterName, parameterName, value); }