/// <summary> /// 专题分类初始化 /// </summary> /// <param name="iclist">专题类集合</param> /// <param name="dt">数据表</param> /// <param name="categrrycode">分类code</param> private static void InitSpecialTopicCategory(List <DataRow> iclist, DataTable dt, String categrrycode) { if (dt == null || dt.Rows.Count == 0) { return; } List <DataRow> results = new List <DataRow>(); List <DataRow> res = new List <DataRow>(); //DataTableExtentions.DataTableToArray(dt).Where(item => Normal.ParseString(item["CATEGORYCODE"]).Trim() == categrrycode.Trim()).ToList(); foreach (DataRow dataRow in DataTableExtentions.DataTableToArray(dt)) { if (Normal.ParseString(dataRow["CATEGORYCODE"]).Trim() == categrrycode.Trim()) { res.Add(dataRow); break; } } if (res.Count > 0) { results.Add(res[0]); GetChildsSpecialtopicCategories(results, res.ToArray(), dt); } iclist.AddRange(results.ToArray()); results.Clear(); results = null; dt.AcceptChanges(); }
/// <summary> /// 设置过滤log /// </summary> /// <param name="sourcename">数据源名称</param> /// <param name="modes">过滤条件集合</param> /// <param name="fields">数据列名</param> /// <param name="map">map</param> /// <param name="_orders">排序键值对</param> /// <param name="_needToGroup">是否要列重组</param> /// <param name="statisticsEngName">统计英文名</param> public static void SetFilterLog(String sourcename, List <FilterMode> modes, String[] fields, Dictionary <GROUPTYPE, String> map, Dictionary <String, bool> _orders, bool _needToGroup, String statisticsEngName) { if (FilterTable == null) { return; } String id = ""; String speicalname = ""; if (modes != null) { foreach (var filter in modes) { bool findRes = false; foreach (DataRow item in DataTableExtentions.DataTableToArray(FilterTable)) { if (item["DATASOURCENAME_EN"].ToString() == sourcename && item["STATICNAME_EN"].ToString() == statisticsEngName && item["FILTER_EN"] != null && item["FILTER_EN"].ToString() == filter.BindParam) { findRes = true; break; } } if (!findRes) { DataRow dr = FilterTable.NewRow(); dr["DATASOURCENAME_EN"] = sourcename; dr["DATASOURCENAME_CN"] = sourcename; dr["STATICNAME_CN"] = statisticsEngName ?? ""; dr["STATICNAME_EN"] = statisticsEngName ?? ""; dr["FILTER_EN"] = filter.BindParam; dr["ORDER_EN"] = ""; dr["PROPERTY_CN"] = ""; dr["ISSTATIC"] = _needToGroup; dr["ISBIGDATA"] = false; dr["SPECIALTOPICNAME"] = String.Format("{0}&{1}", id, speicalname); FilterTable.Rows.Add(dr); } //if ( // DataTableExtentions.DataTableToArray(FilterTable).Where( // item => // item["DATASOURCENAME_EN"].ToString() == sourcename && item["STATICNAME_EN"].ToString() == statisticsEngName && // item["FILTER_EN"] != null && item["FILTER_EN"].ToString() == filter.BindParam).Count() == 0) //{ // DataRow dr = FilterTable.NewRow(); // dr["DATASOURCENAME_EN"] = sourcename; // dr["DATASOURCENAME_CN"] = sourcename; // dr["STATICNAME_CN"] = statisticsEngName ?? ""; // dr["STATICNAME_EN"] = statisticsEngName ?? ""; // dr["FILTER_EN"] = filter.BindParam; // dr["ORDER_EN"] = ""; // dr["PROPERTY_CN"] = ""; // dr["ISSTATIC"] = _needToGroup; // dr["ISBIGDATA"] = false; // dr["SPECIALTOPICNAME"] = String.Format("{0}&{1}", id, speicalname); // FilterTable.Rows.Add(dr); //} } } if (_orders != null && _orders.Count > 0) { foreach (KeyValuePair <String, bool> keyValuePair in _orders) { bool findres = false; if (FilterTable == null) { foreach (DataRow item in DataTableExtentions.DataTableToArray(FilterTable)) { if (item["DATASOURCENAME_EN"].ToString() == sourcename && item["STATICNAME_EN"].ToString() == statisticsEngName && item["FILTER_EN"] != null && item["ORDER_EN"].ToString() == keyValuePair.Key) { findres = true; break; } } } if (!findres) { DataRow dr = FilterTable.NewRow(); dr["DATASOURCENAME_EN"] = sourcename ?? ""; dr["DATASOURCENAME_CN"] = sourcename ?? ""; dr["STATICNAME_CN"] = statisticsEngName ?? ""; dr["STATICNAME_EN"] = statisticsEngName ?? ""; dr["FILTER_EN"] = ""; dr["ORDER_EN"] = keyValuePair.Key; dr["PROPERTY_CN"] = ""; dr["ISSTATIC"] = _needToGroup; dr["ISBIGDATA"] = false; dr["SPECIALTOPICNAME"] = String.Format("{0}&{1}", id, speicalname); FilterTable.Rows.Add(dr); } //if (DataTableExtentions.DataTableToArray(FilterTable) //.Where( // item => // item["DATASOURCENAME_EN"].ToString() == sourcename && item["STATICNAME_EN"].ToString() == statisticsEngName && // item["FILTER_EN"] != null && item["ORDER_EN"].ToString() == keyValuePair.Key).Count() == 0) //{ // DataRow dr = FilterTable.NewRow(); // dr["DATASOURCENAME_EN"] = sourcename ?? ""; // dr["DATASOURCENAME_CN"] = sourcename ?? ""; // dr["STATICNAME_CN"] = statisticsEngName ?? ""; // dr["STATICNAME_EN"] = statisticsEngName ?? ""; // dr["FILTER_EN"] = ""; // dr["ORDER_EN"] = keyValuePair.Key; // dr["PROPERTY_CN"] = ""; // dr["ISSTATIC"] = _needToGroup; // dr["ISBIGDATA"] = false; // dr["SPECIALTOPICNAME"] = String.Format("{0}&{1}", id, speicalname); // FilterTable.Rows.Add(dr); //} } } }