public void Sort_ProvideTwoFilesAndSwapOrders_ReturnsDifferentOrder() { var sysIgnoredFileProvider = Substitute.For <ISysIgnoredFileProvider>(); sysIgnoredFileProvider.GetIgnoredFiles().Returns(new List <string>()); var selector = new SqlSelector(sysIgnoredFileProvider); var files = new List <string>() { "file 1", "file 2" }.AsEnumerable(); Assert.IsTrue(files.First() == "file 1"); var order = new SqlOrderConfiguration() { FileOrder = new List <string>() { "file 2" } }; selector.Sort(order, ref files); Assert.IsTrue(files.First() == "file 2"); }
protected override DataTable FetchRows(TkDbContext context, DataSet dataSet, IParamBuilder builder, int topCount) { SqlSelector selector = new SqlSelector(context, dataSet); using (selector) { IParamBuilder addBuilder = CreateAdditionCondition(context, fScheme); builder = ParamBuilder.CreateParamBuilder(builder, addBuilder); string whereSql; if (builder == null) { whereSql = string.Empty; } else { whereSql = "WHERE " + builder.Sql; } TableSchemeData schemeData = TableSchemeData.Create(context, fScheme); var result = context.ContextConfig.GetListSql(schemeData.SelectFields, GetTableName(context), schemeData.KeyFieldArray, whereSql, OrderBy, 0, topCount); ISimpleAdapter adapter = selector; adapter.SetSql(result.ListSql, builder); context.ContextConfig.SetListData(result, adapter, dataSet, 0, TopCount, EASYSEARCH_TABLE_NAME); return(dataSet.Tables[EASYSEARCH_TABLE_NAME]); } }
protected override DataTable FillDbData(TkDbContext context, DataSet dataSet) { using (SqlSelector selector = new SqlSelector(context, dataSet)) { TableSchemeData data = new TableSchemeData(context, Scheme); ParamBuilderContainer container = new ParamBuilderContainer(); if (FilterSql != null) { string filter = Expression.Execute(FilterSql, selector); container.Add(filter); } container.Add(CreateActiveFilter(context)); string tableName = Scheme.TableName; string sql = string.Format(ObjectUtil.SysCulture, "SELECT {0} FROM {1}", data.SelectFields, context.EscapeName(tableName)); string regName = RegName; selector.Select(regName, sql, container, OrderBy); DataTable dataTable = dataSet.Tables[regName]; DataColumn idColumn = dataTable.Columns[fDisplay.Id.NickName]; idColumn.ColumnName = DecoderConst.CODE_NICK_NAME; dataTable.Columns[fDisplay.Name.NickName].ColumnName = DecoderConst.NAME_NICK_NAME; if (NameExpression != "{Name}") { foreach (DataRow row in dataTable.Rows) { row[DecoderConst.NAME_NICK_NAME] = InternalExpression.Execute(row); } } return(dataTable); } }
public ToolsDocumentSource() { OrderBy = "ORDER BY DOC_ORGIN_DATE DESC"; SortQuery = true; Context = DbContextUtil.CreateDbContext("Tools"); MainResolver = new TaxDocumentResolver(this); Operators = new ListOperators(); using (var idSource = new EmptyDbDataSource()) { SqlSelector.Select(idSource.Context, idSource.DataSet, "Document", "SELECT DISTINCT DOC_SOURCE_ID FROM CS_DOCUMENT WHERE DOC_SOURCE_ID IS NOT NULL"); DataTable table = idSource.DataSet.Tables["Document"]; if (table == null || table.Rows.Count == 0) { FilterSql = new MarcoConfigItem(false, false, "DOC_VERIFY_FLAG > 0"); } else { var ids = from row in table.AsEnumerable() select row["DOC_SOURCE_ID"].ToString(); string sql = string.Format(ObjectUtil.SysCulture, "DOC_VERIFY_FLAG > 0 AND DOC_DOC_ID NOT IN ({0})", string.Join(",", ids)); FilterSql = new MarcoConfigItem(false, false, sql); } } }
public BaseSendMessage Reply(ReceiveMessage message) { TkDbContext context; if (string.IsNullOrEmpty(ContextName)) { context = DbContextUtil.CreateDefault(); } else { context = DbContextUtil.CreateDbContext(ContextName); } using (EmptyDbDataSource source = new EmptyDbDataSource()) { source.Context = context; string sql = Expression.Execute(Sql, source); SqlSelector.Select(source.Context, source.DataSet, TABLE_NAME, sql); DataTable table = source.DataSet.Tables[TABLE_NAME]; if (table.Rows.Count == 0) { TextSendMessage result = new TextSendMessage(message, EmptyMessage); return(result); } else { NewsSendMessage result = new NewsSendMessage(message); int count = 0; if (fFirstArticles.Count > 0) { foreach (var article in fFirstArticles) { result.Add(article); ++count; } } int maxCount = MAX_COUNT; if (FootArticle != null) { maxCount--; } foreach (DataRow row in table.Rows) { if (++count > maxCount) { break; } Article article = DataRowArticle.CreateArticle(source, row, message); result.Add(article); } if (FootArticle != null) { result.Add(FootArticle); } return(result); } } }
private void SetDataSet(object userId) { fDataSet = new DataSet { Locale = CultureInfo.CurrentCulture }; TkDbContext context = DbContextUtil.CreateDefault(); using (context) { IParamBuilder builder = SqlParamBuilder.CreateEqualSql(context, "USER_ID", TkDataType.String, userId); fAdmin = DbUtil.ExecuteScalar("SELECT USER_ADMIN FROM UR_USERS", context, builder).ToString() == "1"; SqlSelector selector = new SqlSelector(context, fDataSet); using (selector) { string userIdName = context.GetSqlParamName("USER_ID"); string sql = string.Format(ObjectUtil.SysCulture, FUNC_SQL, userIdName, context.ContextConfig.GetFunction("LENGTH", "FN_TREE_LAYER")); selector.Select("SYS_FUNCTION", sql, builder.Parameters); Dictionary <int, FunctionItem> idFunctions = new Dictionary <int, FunctionItem>(); DataTable table = fDataSet.Tables["SYS_FUNCTION"]; foreach (DataRow row in table.Rows) { FunctionItem item = new FunctionItem(row); if (item.IsLeaf) { try { idFunctions.Add(item.Id, item); fFunctions.Add(item.Key, item); } catch { } } } sql = string.Format(ObjectUtil.SysCulture, SUB_FUNC_SQL, userIdName); selector.Select("SYS_SUB_FUNC", sql, builder.Parameters); table = fDataSet.Tables["SYS_SUB_FUNC"]; var group = from item in table.AsEnumerable() group item by item.Field <int>("FnId"); foreach (var groupItem in group) { FunctionItem item; if (idFunctions.TryGetValue(groupItem.Key, out item)) { item.AddSubFunctions(groupItem); } } } } }
protected override DataRow FetchRow(string code, TkDbContext context, DataSet dataSet) { SqlSelector selector = new SqlSelector(context, dataSet); using (selector) { IParamBuilder builder = SqlParamBuilder.CreateEqualSql(context, ValueField, code); String sql = string.Format("SELECT {0} FROM ({1}) {2}", fSelectFields, fSql, TABLE_NAME); return(selector.TrySelectRow(TABLE_NAME, sql, builder)); } }
protected override DataTable FillDbData(TkDbContext context, DataSet dataSet) { using (SqlSelector selector = new SqlSelector(context, dataSet)) { BasePlugInAttribute attr = Attribute; TkDebug.AssertNotNull(attr, "需要设置CodeAttribute", this); string regName = attr.GetRegName(GetType()); string sql = Expression.Execute(Sql, selector); selector.Select(regName, sql); DataTable dataTable = dataSet.Tables[regName]; return(dataTable); } }
private void SetDataSet(object userId) { fDataSet = new DataSet { Locale = CultureInfo.CurrentCulture }; TkDbContext context = DbContextUtil.CreateDefault(); using (context) { IParamBuilder builder = SqlParamBuilder.CreateEqualSql(context, "USER_ID", TkDataType.String, userId); fAdmin = DbUtil.ExecuteScalar("SELECT USER_ADMIN FROM UR_USERS", context, builder).ToString() == "1"; SqlSelector selector = new SqlSelector(context, fDataSet); using (selector) { string userIdName = context.GetSqlParamName("USER_ID"); string sql = string.Format(ObjectUtil.SysCulture, FUNC_SQL, userIdName, context.ContextConfig.GetFunction("LENGTH", "FN_TREE_LAYER")); selector.Select("SYS_FUNCTION", sql, builder.Parameters); Dictionary<int, FunctionItem> idFunctions = new Dictionary<int, FunctionItem>(); DataTable table = fDataSet.Tables["SYS_FUNCTION"]; foreach (DataRow row in table.Rows) { FunctionItem item = new FunctionItem(row); if (item.IsLeaf) { try { idFunctions.Add(item.Id, item); fFunctions.Add(item.Key, item); } catch { } } } sql = string.Format(ObjectUtil.SysCulture, SUB_FUNC_SQL, userIdName); selector.Select("SYS_SUB_FUNC", sql, builder.Parameters); table = fDataSet.Tables["SYS_SUB_FUNC"]; var group = from item in table.AsEnumerable() group item by item.Field<int>("SF_FN_ID"); foreach (var groupItem in group) { FunctionItem item; if (idFunctions.TryGetValue(groupItem.Key, out item)) item.AddSubFunctions(groupItem); } } } }
public void Exclude_IncludingSysIgnoredFile_RetunsWithoutit() { var sysIgnoredFileProvider = Substitute.For <ISysIgnoredFileProvider>(); sysIgnoredFileProvider.GetIgnoredFiles().Returns(new List <string>() { "file 1" }); var selector = new SqlSelector(sysIgnoredFileProvider); var files = new List <string>() { "file 1", "file 2" }.AsEnumerable(); var ignore = new SqlIgnoreConfiguration() { IgnoredFile = new List <string>() }; selector.Exclude(ignore, ref files); Assert.IsTrue(!files.Contains("file 1")); }