/// <summary> /// Replaces filter configuration for specified column /// </summary> /// <param name="column">Column usage</param> /// <param name="pluginId">Filter plugin ID</param> /// <param name="configuration">Filter configuration delegate</param> public static void UpdateFilterConfig <T, TTableColumn>(this IColumnTargetProperty <TTableColumn> column, string pluginId, Action <ColumnPluginConfigurationWrapper <T, TTableColumn> > configuration) where T : IProvidesColumnName, new() { var where = string.Concat("filter-", column.ColumnConfiguration.RawColumnName); PluginConfiguration config = column.TableConfigurator.TableConfiguration.GetPluginConfiguration(pluginId, where); if (config == null) { config = new PluginConfiguration(pluginId) { Configuration = new T() { ColumnName = column.ColumnConfiguration.RawColumnName }, Placement = where, }; column.TableConfigurator.TableConfiguration.PluginsConfiguration.Add(config); } var wpapper = new ColumnPluginConfigurationWrapper <T, TTableColumn>(config, column.ColumnConfiguration.RawColumnName); if (configuration != null) { configuration(wpapper); } }
/// <summary> /// Allows to filter specified column by FormWatch fields value /// </summary> /// <param name="column">Column to filter</param> /// <param name="c">FormWatch builder</param> /// <returns></returns> public static FormWatchAutofilterConfiguration <TCol, TForm> ByForm <TCol, TForm>(this IColumnTargetProperty <TCol> column, FormWatchBuilder <TForm> c) { return(new FormWatchAutofilterConfiguration <TCol, TForm>(c.ClientConfig, column.ColumnConfiguration.RawColumnName)); }