⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memoryworkflowstore.cs

📁 基于DotNet的工作流引擎实现
💻 CS
📖 第 1 页 / 共 2 页
字号:
			return false;
		}

		private bool query_Renamed2(long entryId, WorkflowExpressionQuery query)
		{
			Expression expression = query.Expression;

			if (expression.Nested)
			{
				return this.checkNestedExpression(entryId, (NestedExpression) expression);
			}
			else
			{
				return this.checkExpression(entryId, (FieldExpression) expression);
			}
		}

		private bool queryBasic(Int64 entryId, WorkflowQuery query)
		{
			// the query object is a comparison
			Object value_Renamed = query.Value;
			int operator_Renamed = query.Operator;
			int field = query.Field;
			int type = query.Type;

			switch (operator_Renamed)
			{
				case WorkflowQuery.EQUALS:
					return queryEquals(entryId, field, type, value_Renamed);


				case WorkflowQuery.NOT_EQUALS:
					return queryNotEquals(entryId, field, type, value_Renamed);


				case WorkflowQuery.GT:
					return queryGreaterThan(entryId, field, type, value_Renamed);


				case WorkflowQuery.LT:
					return queryLessThan(entryId, field, type, value_Renamed);
			}

			return false;
		}

		private bool queryEquals(Int64 entryId, int field, int type, Object value_Renamed)
		{
			IList steps;

			if (type == WorkflowQuery.CURRENT)
			{
				steps = (IList) currentStepsCache[entryId];
			}
			else
			{
				steps = (IList) historyStepsCache[entryId];
			}

			switch (field)
			{
				case WorkflowQuery.ACTION:

					long actionId = DataUtil.getInt((Int32) value_Renamed);

					foreach (SimpleStep step in steps)
					{
						if (step.ActionId == actionId)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.CALLER:

					String caller = (String) value_Renamed;
					foreach (SimpleStep step in steps)
					{
						if (TextUtils.NoNull(step.Caller).Equals(caller))
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.FINISH_DATE:

					DateTime finishDate = (DateTime) value_Renamed;

					foreach (SimpleStep step in steps)
					{
						if (finishDate.Equals(step.FinishDate))
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.OWNER:

					String owner = (String) value_Renamed;

					foreach (SimpleStep step in steps)
					{
						if (TextUtils.NoNull(step.Owner).Equals(owner))
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.START_DATE:

					DateTime startDate = (DateTime) value_Renamed;

					foreach (SimpleStep step in steps)
					{
						if (startDate.Equals(step.StartDate))
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.STEP:

					int stepId = DataUtil.getInt((Int32) value_Renamed);

					foreach (SimpleStep step in steps)
					{
						if (stepId == step.StepId)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.STATUS:

					String status = (String) value_Renamed;
					foreach (SimpleStep step in steps)
					{
						if (TextUtils.NoNull(step.Status).Equals(status))
						{
							return true;
						}
					}

					return false;
			}

			return false;
		}

		private bool queryGreaterThan(Int64 entryId, int field, int type, Object value_Renamed)
		{
			IList steps;

			if (type == WorkflowQuery.CURRENT)
			{
				steps = (IList) currentStepsCache[entryId];
			}
			else
			{
				steps = (IList) historyStepsCache[entryId];
			}

			switch (field)
			{
				case WorkflowQuery.ACTION:

					long actionId = DataUtil.getLong((Int64) value_Renamed);

					foreach (SimpleStep step in steps)
					{
						if (step.ActionId > actionId)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.CALLER:

					String caller = (String) value_Renamed;

					foreach (SimpleStep step in steps)
					{
						if (TextUtils.NoNull(step.Caller).CompareTo(caller) > 0)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.FINISH_DATE:

					DateTime finishDate = (DateTime) value_Renamed;

					foreach (SimpleStep step in steps)
					{
						if (step.FinishDate.CompareTo(finishDate) > 0)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.OWNER:

					String owner = (String) value_Renamed;
					foreach (SimpleStep step in steps)
					{
						if (TextUtils.NoNull(step.Owner).CompareTo(owner) > 0)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.START_DATE:

					DateTime startDate = (DateTime) value_Renamed;
					foreach (SimpleStep step in steps)
					{
						if (step.StartDate.CompareTo(startDate) > 0)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.STEP:

					int stepId = DataUtil.getInt((Int32) value_Renamed);
					foreach (SimpleStep step in steps)
					{
						if (step.StepId > stepId)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.STATUS:

					String status = (String) value_Renamed;
					foreach (SimpleStep step in steps)
					{
						if (TextUtils.NoNull(step.Status).CompareTo(status) > 0)
						{
							return true;
						}
					}

					return false;
			}

			return false;
		}

		private bool queryLessThan(Int64 entryId, int field, int type, Object value_Renamed)
		{
			IList steps;

			if (type == WorkflowQuery.CURRENT)
			{
				steps = (IList) currentStepsCache[entryId];
			}
			else
			{
				steps = (IList) historyStepsCache[entryId];
			}

			switch (field)
			{
				case WorkflowQuery.ACTION:

					long actionId = DataUtil.getLong((Int64) value_Renamed);

					foreach (SimpleStep step in steps)
					{
						if (step.ActionId < actionId)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.CALLER:

					String caller = (String) value_Renamed;

					foreach (SimpleStep step in steps)
					{
						if (TextUtils.NoNull(step.Caller).CompareTo(caller) < 0)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.FINISH_DATE:

					DateTime finishDate = (DateTime) value_Renamed;
					foreach (SimpleStep step in steps)
					{
						if (step.FinishDate.CompareTo(finishDate) < 0)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.OWNER:

					String owner = (String) value_Renamed;
					foreach (SimpleStep step in steps)
					{
						if (TextUtils.NoNull(step.Owner).CompareTo(owner) < 0)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.START_DATE:

					DateTime startDate = (DateTime) value_Renamed;
					foreach (SimpleStep step in steps)
					{
						if (step.StartDate.CompareTo(startDate) < 0)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.STEP:

					int stepId = DataUtil.getInt((Int32) value_Renamed);
					foreach (SimpleStep step in steps)
					{
						if (step.StepId < stepId)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.STATUS:

					String status = (String) value_Renamed;
					foreach (SimpleStep step in steps)
					{
						if (TextUtils.NoNull(step.Status).CompareTo(status) < 0)
						{
							return true;
						}
					}

					return false;
			}

			return false;
		}

		private bool queryNotEquals(Int64 entryId, int field, int type, Object value_Renamed)
		{
			IList steps;

			if (type == WorkflowQuery.CURRENT)
			{
				steps = (IList) currentStepsCache[entryId];
			}
			else
			{
				steps = (IList) historyStepsCache[entryId];
			}

			switch (field)
			{
				case WorkflowQuery.ACTION:

					long actionId = DataUtil.getLong((Int64) value_Renamed);

					foreach (SimpleStep step in steps)
					{
						if (step.ActionId != actionId)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.CALLER:

					String caller = (String) value_Renamed;

					foreach (SimpleStep step in steps)
					{
						if (!TextUtils.NoNull(step.Caller).Equals(caller))
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.FINISH_DATE:

					DateTime finishDate = (DateTime) value_Renamed;

					foreach (SimpleStep step in steps)
					{
						if (!finishDate.Equals(step.FinishDate))
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.OWNER:

					String owner = (String) value_Renamed;

					foreach (SimpleStep step in steps)
					{
						if (!TextUtils.NoNull(step.Owner).Equals(owner))
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.START_DATE:

					DateTime startDate = (DateTime) value_Renamed;

					foreach (SimpleStep step in steps)
					{
						if (!startDate.Equals(step.StartDate))
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.STEP:

					int stepId = DataUtil.getInt((Int32) value_Renamed);
					foreach (SimpleStep step in steps)
					{
						if (stepId != step.StepId)
						{
							return true;
						}
					}

					return false;


				case WorkflowQuery.STATUS:

					String status = (String) value_Renamed;

					foreach (SimpleStep step in steps)
					{
						if (!TextUtils.NoNull(step.Status).Equals(status))
						{
							return true;
						}
					}

					return false;
			}

			return false;
		}

		static MemoryWorkflowStore()
		{
			entryCache = new Hashtable();
			currentStepsCache = new Hashtable();
			historyStepsCache = new Hashtable();
			propertySetCache = new Hashtable();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -