public DataFilterConfiguration(DataFilterConfiguration filterToClone) : this(filterToClone.FilterName, filterToClone.IsEnabled) { foreach (var filterParameter in filterToClone.FilterParameters) { FilterParameters[filterParameter.Key] = filterParameter.Value; } }
/// <summary> /// (重写)滤波器的参数值. /// </summary> /// <param name="filterName">Name of the filter</param> /// <param name="parameterName">Parameter's name</param> /// <param name="value">Value of the parameter to be set</param> 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); }
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? 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(filterName, true); } } enabledFilters.ForEach(ApplyEnableFilter); return new DisposeAction(() => DisableFilter(enabledFilters.ToArray())); }