Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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();
 }
Exemplo n.º 4
0
 /// <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);
 }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        /// <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);
        }
Exemplo n.º 7
0
        /// <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)));
        }
Exemplo n.º 8
0
        /// <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;
            }
        }
Exemplo n.º 9
0
 /// <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));
 }
Exemplo n.º 10
0
 /// <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));
 }