/// <summary> /// 增加一条记录,返回新的ID号。需要有一个单一主键,并且开启有标识符属性(异步方式) /// </summary> /// <param name="entity">实体模型</param> /// <returns></returns> public virtual async Task <int> InsertAsync(FlowProcessEntity entity) { if (entity.ProcessID <= 0) { entity.ProcessID = GetNewID(); } Dictionary <string, object> dict = new Dictionary <string, object>(); GetParameters(entity, dict); string strSQL = "insert into FlowProcess (" + "ProcessID," + "FlowID," + "ProcessName," + "Description," + "PassActionName," + "PassActionStatus," + "RejectActionName," + "RejectActionStatus) " + "values(" + "@ProcessID," + "@FlowID," + "@ProcessName," + "@Description," + "@PassActionName," + "@PassActionStatus," + "@RejectActionName," + "@RejectActionStatus)"; if (await Task.Run(() => _DB.ExeSQLResult(strSQL, dict))) { return(DataConverter.CLng(entity.ProcessID)); } return(-1); }
/// <summary> /// 增加一条记录 /// </summary> /// <param name="entity">实体模型</param> /// <returns></returns> public virtual bool Add(FlowProcessEntity entity) { if (entity.ProcessID <= 0) { entity.ProcessID = GetNewID(); } Dictionary <string, object> dict = new Dictionary <string, object>(); GetParameters(entity, dict); string strSQL = "insert into FlowProcess (" + "ProcessID," + "FlowID," + "ProcessName," + "Description," + "PassActionName," + "PassActionStatus," + "RejectActionName," + "RejectActionStatus) " + "values(" + "@ProcessID," + "@FlowID," + "@ProcessName," + "@Description," + "@PassActionName," + "@PassActionStatus," + "@RejectActionName," + "@RejectActionStatus)"; return(_DB.ExeSQLResult(strSQL, dict)); }
/// <summary> /// 构造函数。 /// </summary> public FlowServicePresenter() { this.flowProcessEntity = new FlowProcessEntity(); this.flowProcessInstanceEntity = new FlowProcessInstanceEntity(); this.flowStepInstanceEntity = new FlowStepInstanceEntity(); this.flowStepInstanceDataEntity = new FlowStepInstanceDataEntity(); this.flowInstanceRunErrorEntity = new FlowInstanceRunErrorEntity(); }
/// <summary> /// 把实体类转换成键/值对集合 /// </summary> /// <param name="entity"></param> /// <param name="dict"></param> private static void GetParameters(FlowProcessEntity entity, Dictionary <string, object> dict) { dict.Add("ProcessID", entity.ProcessID); dict.Add("FlowID", entity.FlowID); dict.Add("ProcessName", entity.ProcessName); dict.Add("Description", entity.Description); dict.Add("PassActionName", entity.PassActionName); dict.Add("PassActionStatus", entity.PassActionStatus); dict.Add("RejectActionName", entity.RejectActionName); dict.Add("RejectActionStatus", entity.RejectActionStatus); }
/// <summary> /// 通过数据读取器生成实体类 /// </summary> /// <param name="rdr"></param> /// <returns></returns> private static FlowProcessEntity GetEntityFromrdr(NullableDataReader rdr) { FlowProcessEntity info = new FlowProcessEntity(); info.ProcessID = rdr.GetInt32("ProcessID"); info.FlowID = rdr.GetInt32("FlowID"); info.ProcessName = rdr.GetString("ProcessName"); info.Description = rdr.GetString("Description"); info.PassActionName = rdr.GetString("PassActionName"); info.PassActionStatus = rdr.GetInt32("PassActionStatus"); info.RejectActionName = rdr.GetString("RejectActionName"); info.RejectActionStatus = rdr.GetInt32("RejectActionStatus"); return(info); }
/// <summary> /// 获取实体(异步方式) /// </summary> /// <param name="strWhere">参数化查询条件(例如: and Name = @Name )</param> /// <param name="dict">参数的名/值集合</param> /// <returns></returns> public virtual async Task <FlowProcessEntity> GetEntityAsync(string strWhere, Dictionary <string, object> dict = null) { FlowProcessEntity obj = null; string strSQL = "select top 1 * from FlowProcess where 1=1 " + strWhere; using (NullableDataReader reader = await Task.Run(() => _DB.GetDataReader(strSQL, dict))) { if (reader.Read()) { obj = GetEntityFromrdr(reader); } } return(obj); }
/// <summary> /// 更新一条记录(异步方式) /// </summary> /// <param name="entity">实体模型</param> /// <returns></returns> public virtual async Task <bool> UpdateAsync(FlowProcessEntity entity) { Dictionary <string, object> dict = new Dictionary <string, object>(); GetParameters(entity, dict); string strSQL = "Update FlowProcess SET " + "FlowID = @FlowID," + "ProcessName = @ProcessName," + "Description = @Description," + "PassActionName = @PassActionName," + "PassActionStatus = @PassActionStatus," + "RejectActionName = @RejectActionName," + "RejectActionStatus = @RejectActionStatus" + " WHERE " + "ProcessID = @ProcessID"; return(await Task.Run(() => _DB.ExeSQLResult(strSQL, dict))); }
/// <summary> /// 从数据库创建Process类。 /// </summary> /// <param name="processID">流程ID。</param> /// <returns>流程类。</returns> public static Process CreateProcess(GUIDEx processID) { lock (ModuleUtils.SynchronizedObject) { Process process = null; if (processID.IsValid) { #region 流程信息。 FlowProcessEntity flowProcessEntity = new FlowProcessEntity(); FlowStepEntity flowStepEntity = new FlowStepEntity(); FlowTransitionEntity flowTransitionEntity = new FlowTransitionEntity(); FlowProcess p = new FlowProcess(); p.ProcessID = processID; if (flowProcessEntity.LoadRecord(ref p)) { process = new Process(); process.ProcessID = p.ProcessID; process.ProcessName = p.ProcessName; process.ProcessSign = p.ProcessSign; process.BeginDate = p.BeginDate; process.EndDate = p.EndDate; process.ProcessDescription = p.ProcessDescription; #region 步骤信息。 process.Steps = flowStepEntity.LoadStepCollection(process.ProcessID); #endregion #region 变迁规则。 process.Transitions = flowTransitionEntity.LoadTransitionCollection(process.ProcessID); #endregion } #endregion } return process; } }
/// <summary> /// 增加或更新一条记录(异步方式) /// </summary> /// <param name="entity">实体模型</param> /// <param name="IsSave">是否增加</param> /// <returns></returns> public virtual async Task <bool> AddOrUpdateAsync(FlowProcessEntity entity, bool IsSave) { return(IsSave ? await AddAsync(entity) : await UpdateAsync(entity)); }
/// <summary> /// 增加或更新一条记录 /// </summary> /// <param name="entity">实体模型</param> /// <param name="IsSave">是否增加</param> /// <returns></returns> public virtual bool AddOrUpdate(FlowProcessEntity entity, bool IsSave) { return(IsSave ? Add(entity) : Update(entity)); }