Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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());
            }
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        /// <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());
            }
        }
Beispiel #8
0
        /// <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);
        }
Beispiel #9
0
        /// <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);
        }
Beispiel #10
0
        /// <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);
        }
Beispiel #11
0
        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());
            }
        }
Beispiel #14
0
		/// <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>
		/// 删除流程已活动过的所有的节点
		/// </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());
			}
		}
        /// <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;
        }