protected override void AfterLoad(WfMatrixDefinitionCollection data) { if (data.Count == 0) { return; } InSqlClauseBuilder builder = new InSqlClauseBuilder("MATRIX_DEF_KEY"); data.ForEach(md => builder.AppendItem(md.Key)); string sql = string.Format("SELECT * FROM WF.MATRIX_DIMENSION_DEFINITION WHERE {0} ORDER BY MATRIX_DEF_KEY, SORT_ORDER", builder.AppendTenantCodeSqlClause(typeof(WfMatrixDefinition)).ToSqlString(TSqlBuilder.Instance)); DataTable table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0]; foreach (DataRow row in table.Rows) { WfMatrixDimensionDefinition dd = new WfMatrixDimensionDefinition(); ORMapping.DataRowToObject(row, dd); WfMatrixDefinition matrixDefinition = data.Find(md => string.Compare(md.Key, dd.MatrixKey, true) == 0); if (matrixDefinition != null) { matrixDefinition.Dimensions.Add(dd); } } }
private void DeleteEmailMessagesMainData(IEnumerable <EmailMessage> messages) { InSqlClauseBuilder builder = new InSqlClauseBuilder("MESSAGE_ID"); messages.ForEach(m => builder.AppendItem(m.ID)); if (builder.Count > 0) { string sql = string.Format("DELETE MSG.EMAIL_MESSAGES WHERE {0}", builder.AppendTenantCodeSqlClause().ToSqlString(TSqlBuilder.Instance)); DbHelper.RunSql(sql, GetConnectionName()); } }
/// <summary> /// 删除流程运行时活动节点的Assignees /// </summary> /// <param name="activityID"></param> public void Delete(WfProcessCurrentInfoCollection processesInfo) { InSqlClauseBuilder builder = new InSqlClauseBuilder("PROCESS_ID"); processesInfo.ForEach(p => builder.AppendItem(p.CurrentActivityID)); if (builder.Count > 0) { string sql = string.Format("DELETE {0} WHERE {1}", GetMappingInfo(new Dictionary <string, object>()).TableName, builder.AppendTenantCodeSqlClause().ToSqlString(TSqlBuilder.Instance)); DbHelper.RunSql(sql, GetConnectionName()); } }
/// <summary> /// 删除流程已活动过的所有的节点 /// </summary> /// <param name="process"></param> public void DeleteProcessActivities(WfProcessCurrentInfoCollection processes) { processes.NullCheck("processes"); InSqlClauseBuilder builder = new InSqlClauseBuilder("PROCESS_ID"); processes.ForEach(p => builder.AppendItem(p.InstanceID)); if (builder.Count > 0) { string sql = string.Format("DELETE WF.PROCESS_CURRENT_ACTIVITIES WHERE PROCESS_ID {0}", builder.AppendTenantCodeSqlClause(typeof(WfProcessCurrentActivity)).ToSqlString(TSqlBuilder.Instance)); DbHelper.RunSql(sql, GetConnectionName()); } }
private static string GetJobSchedulesDeleteClause(params string[] jobIDs) { InSqlClauseBuilder builder = new InSqlClauseBuilder("JOB_ID"); builder.AppendItem(jobIDs); string sql = string.Empty; if (builder.Count > 0) { sql = string.Format("{0} {1}", DELETE_JOB_SCHEDULES_SQL_CLAUSE, builder.AppendTenantCodeSqlClause().ToSqlString(TSqlBuilder.Instance)); } return(sql); }
/// <summary> /// 强制解锁 /// </summary> /// <param name="lockIDs">锁ID</param> public static void ForceUnlock(params string[] lockIDs) { ExceptionHelper.FalseThrow <ArgumentNullException>(lockIDs != null, "lockID"); InSqlClauseBuilder builder = new InSqlClauseBuilder("LOCK_ID"); for (int i = 0; i < lockIDs.Length; i++) { builder.AppendItem(lockIDs[i]); } if (builder.Count > 0) { string sql = string.Format("DELETE FROM WF.LOCK WHERE {0}", builder.AppendTenantCodeSqlClause().ToSqlString(TSqlBuilder.Instance)); DbHelper.RunSqlWithTransaction(sql); } }
public void Delete(WfProcessCurrentInfoCollection processesInfo) { ORMappingItemCollection mapping = ORMapping.GetMappingInfo <WfRelativeProcess>(); InSqlClauseBuilder items = new InSqlClauseBuilder("PROCESS_ID"); foreach (var process in processesInfo) { items.AppendItem(process.InstanceID); } if (items.Count > 0) { string sql = string.Format("DELETE {0} WHERE {1}", mapping.TableName, items.AppendTenantCodeSqlClause(typeof(WfRelativeProcess)).ToSqlString(TSqlBuilder.Instance)); DbHelper.RunSql(sql, GetConnectionName()); } }
/// <summary> /// 根据CategoryID获取Category集合 /// </summary> /// <param name="categoryID"></param> /// <returns></returns> public TaskCategoryCollection GetCategoriesByCategoryIDs(params string[] categoryID) { string strSQL = string.Empty; TaskCategoryCollection taskCategories = new TaskCategoryCollection(); if (categoryID.Length > 0) { InSqlClauseBuilder inSQL = new InSqlClauseBuilder("CATEGORY_GUID"); inSQL.AppendItem(categoryID); strSQL = string.Format("SELECT * FROM WF.USER_TASK_CATEGORY WHERE {0} ORDER BY INNER_SORT_ID", inSQL.AppendTenantCodeSqlClause(typeof(TaskCategory)).ToSqlString(TSqlBuilder.Instance)); DataView dv = DbHelper.RunSqlReturnDS(strSQL, ConnectionDefine.DBConnectionName).Tables[0].DefaultView; taskCategories.LoadFromDataView(dv); } return(taskCategories); }
/// <summary> /// 由资源ID查询 /// </summary> /// <param name="resourceIDs">资源ID</param> /// <returns>查询结果</returns> public MaterialList LoadMaterialsByResourceID(params string[] resourceIDs) { ExceptionHelper.TrueThrow <ArgumentNullException>(resourceIDs == null, "resourceIDs"); MaterialList result = new MaterialList(); if (resourceIDs.Length != 0) { InSqlClauseBuilder inBuilder = new InSqlClauseBuilder("RESOURCE_ID"); inBuilder.AppendItem(resourceIDs); OrderBySqlClauseBuilder orderClause = new OrderBySqlClauseBuilder(); orderClause.AppendItem("SORT_ID", FieldSortDirection.Ascending); string sql = string.Format("SELECT * FROM WF.MATERIAL WHERE {0} AND VERSION_TYPE = '{1}' ORDER BY {2}", inBuilder.AppendTenantCodeSqlClause(typeof(Material)).ToSqlString(TSqlBuilder.Instance), Convert.ToInt32(MaterialVersionType.Normal).ToString(), orderClause.ToSqlString(TSqlBuilder.Instance)); using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName())) { using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName())) { while (dr.Read()) { Material material = new Material(); ORMapping.DataReaderToObject(dr, material); result.Add(material); } } } DecorateMaterials(result); } return(result); }
/// <summary> /// 根据ID查询所有提示表 /// </summary> /// <param name="codeArray">CodeName的数组 </param> /// <param name="cultureName"> 区域</param> /// <returns>提示信息集合</returns> public TipCollection GetTips(string[] codeArray, string cultureName) { (codeArray != null).FalseThrow("提示信息列表不能为null"); InSqlClauseBuilder builder = new InSqlClauseBuilder("CODE_NAME"); builder.AppendItem(codeArray); var result = new TipCollection(); if (builder.Count > 0) { string sql = string.Format("SELECT * FROM KB.TIP WHERE ENABLE ='1' AND CULTURE='{1}' AND {0} ", builder.AppendTenantCodeSqlClause(typeof(Tip)).ToSqlString(TSqlBuilder.Instance), cultureName); DataTable table = null; DbHelper.RunSql(db => table = db.ExecuteDataSet(CommandType.Text, sql).Tables[0], ConnectionDefine.KBConnectionName); ORMapping.DataViewToCollection(result, table.DefaultView); } return(result); }
public int Delete(string[] ids) { StringBuilder strBuilder = new StringBuilder(); InSqlClauseBuilder builder = new InSqlClauseBuilder("JOB_ID"); builder.AppendItem(ids); int result = 0; if (builder.Count > 0) { strBuilder.AppendFormat("{0} {1}", DELETE_JOBS_SQL_CLAUSE, builder.AppendTenantCodeSqlClause().ToSqlString(TSqlBuilder.Instance)); strBuilder.Append(GetJobSchedulesDeleteClause(ids)); result = DbHelper.RunSqlWithTransaction(strBuilder.ToString(), GetConnectionName()); } return(result); }
public int Delete(string[] ids) { InSqlClauseBuilder builder = new InSqlClauseBuilder(); builder.AppendItem(ids); int result = 0; if (builder.Count > 0) { string sql = string.Format("{0} {1}", DELETE_JOB_START_WORKFLOW_SQL_CLAUSE, builder.AppendTenantCodeSqlClause(typeof(StartWorkflowJob)).ToSqlString(TSqlBuilder.Instance)); using (TransactionScope tran = TransactionScopeFactory.Create()) { JobBaseAdapter.Instance.Delete(ids); result = DbHelper.RunSqlWithTransaction(sql, GetConnectionName()); tran.Complete(); } } return(result); }
private void DeleteEmailMessagesMainData(IEnumerable<EmailMessage> messages) { InSqlClauseBuilder builder = new InSqlClauseBuilder("MESSAGE_ID"); messages.ForEach(m => builder.AppendItem(m.ID)); if (builder.Count > 0) { string sql = string.Format("DELETE MSG.EMAIL_MESSAGES WHERE {0}", builder.AppendTenantCodeSqlClause().ToSqlString(TSqlBuilder.Instance)); DbHelper.RunSql(sql, GetConnectionName()); } }
/// <summary> /// 强制解锁 /// </summary> /// <param name="lockIDs">锁ID</param> public static void ForceUnlock(params string[] lockIDs) { ExceptionHelper.FalseThrow<ArgumentNullException>(lockIDs != null, "lockID"); InSqlClauseBuilder builder = new InSqlClauseBuilder("LOCK_ID"); for (int i = 0; i < lockIDs.Length; i++) builder.AppendItem(lockIDs[i]); if (builder.Count > 0) { string sql = string.Format("DELETE FROM WF.LOCK WHERE {0}", builder.AppendTenantCodeSqlClause().ToSqlString(TSqlBuilder.Instance)); DbHelper.RunSqlWithTransaction(sql); } }
/// <summary> /// 由资源ID查询 /// </summary> /// <param name="resourceIDs">资源ID</param> /// <returns>查询结果</returns> public MaterialList LoadMaterialsByResourceID(params string[] resourceIDs) { ExceptionHelper.TrueThrow<ArgumentNullException>(resourceIDs == null, "resourceIDs"); MaterialList result = new MaterialList(); if (resourceIDs.Length != 0) { InSqlClauseBuilder inBuilder = new InSqlClauseBuilder("RESOURCE_ID"); inBuilder.AppendItem(resourceIDs); OrderBySqlClauseBuilder orderClause = new OrderBySqlClauseBuilder(); orderClause.AppendItem("SORT_ID", FieldSortDirection.Ascending); string sql = string.Format("SELECT * FROM WF.MATERIAL WHERE {0} AND VERSION_TYPE = '{1}' ORDER BY {2}", inBuilder.AppendTenantCodeSqlClause(typeof(Material)).ToSqlString(TSqlBuilder.Instance), Convert.ToInt32(MaterialVersionType.Normal).ToString(), orderClause.ToSqlString(TSqlBuilder.Instance)); using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName())) { using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName())) { while (dr.Read()) { Material material = new Material(); ORMapping.DataReaderToObject(dr, material); result.Add(material); } } } DecorateMaterials(result); } return result; }
/// <summary> /// 根据CategoryID获取Category集合 /// </summary> /// <param name="categoryID"></param> /// <returns></returns> public TaskCategoryCollection GetCategoriesByCategoryIDs(params string[] categoryID) { string strSQL = string.Empty; TaskCategoryCollection taskCategories = new TaskCategoryCollection(); if (categoryID.Length > 0) { InSqlClauseBuilder inSQL = new InSqlClauseBuilder("CATEGORY_GUID"); inSQL.AppendItem(categoryID); strSQL = string.Format("SELECT * FROM WF.USER_TASK_CATEGORY WHERE {0} ORDER BY INNER_SORT_ID", inSQL.AppendTenantCodeSqlClause(typeof(TaskCategory)).ToSqlString(TSqlBuilder.Instance)); DataView dv = DbHelper.RunSqlReturnDS(strSQL).Tables[0].DefaultView; taskCategories.LoadFromDataView(dv); } return taskCategories; }