📄 workflow.cs
字号:
namespace PowerEasy.WorkFlows
{
using PowerEasy.Common;
using PowerEasy.IDal.WorkFlow;
using PowerEasy.Model.WorkFlow;
using System;
using System.Collections.Generic;
using System.Text;
public sealed class WorkFlow
{
private static readonly IWorkFlows dal = DataAccess.CreateWorkFlows();
private WorkFlow()
{
}
public static bool Add(WorkFlowsInfo workFlowsInfo)
{
EncodeWorkFlowInfo(workFlowsInfo);
return dal.Add(workFlowsInfo);
}
public static bool Copy(int flowId)
{
WorkFlowsInfo workFlowsById = new WorkFlowsInfo();
WorkFlowsInfo workFlowsInfo = new WorkFlowsInfo();
workFlowsById = GetWorkFlowsById(flowId);
workFlowsInfo.FlowId = GetMaxId() + 1;
workFlowsInfo.FlowName = workFlowsById.FlowName + "复制";
workFlowsInfo.Description = workFlowsById.Description;
if (!Add(workFlowsInfo))
{
return false;
}
string str = "";
IList<FlowProcessInfo> flowProcessList = FlowProcess.GetFlowProcessList(flowId);
for (int i = 0; i < flowProcessList.Count; i++)
{
FlowProcessInfo flowProcessInfo = new FlowProcessInfo();
flowProcessInfo.FlowId = workFlowsInfo.FlowId;
flowProcessInfo.Description = flowProcessList[i].Description;
flowProcessInfo.PassActionName = flowProcessList[i].PassActionName;
flowProcessInfo.PassActionStatus = flowProcessList[i].PassActionStatus;
flowProcessInfo.ProcessId = flowProcessList[i].ProcessId;
flowProcessInfo.ProcessName = flowProcessList[i].ProcessName;
flowProcessInfo.RejectActionName = flowProcessList[i].RejectActionName;
flowProcessInfo.RejectActionStatus = flowProcessList[i].RejectActionStatus;
IList<StatusInfo> processStatusCodeList = FlowProcess.GetProcessStatusCodeList(flowProcessList[i].FlowId, flowProcessList[i].ProcessId);
StringBuilder sb = new StringBuilder();
for (int j = 0; j < processStatusCodeList.Count; j++)
{
StringHelper.AppendString(sb, processStatusCodeList[j].StatusCode.ToString());
}
IList<RoleInfo> processRoleList = FlowProcess.GetProcessRoleList(flowProcessList[i].FlowId, flowProcessList[i].ProcessId);
for (int k = 0; k < processRoleList.Count; k++)
{
if (string.IsNullOrEmpty(str))
{
str = processRoleList[k].RoleId.ToString();
}
else
{
str = str + "," + processRoleList[k].RoleId;
}
}
if (!FlowProcess.Add(flowProcessInfo, sb.ToString(), str))
{
break;
}
}
return true;
}
private static void DecodeWorkFlowInfo(WorkFlowsInfo workFlowsInfo)
{
if (workFlowsInfo != null)
{
workFlowsInfo.FlowName = DataSecurity.HtmlDecode(workFlowsInfo.FlowName);
workFlowsInfo.Description = DataSecurity.HtmlDecode(workFlowsInfo.Description);
}
}
public static bool Delete(int workFlowsId)
{
bool flag = false;
bool[] flagArray = new bool[] { true, true };
if (FlowProcess.ExistWorkFlowInFlowProcess(workFlowsId))
{
flagArray[0] = FlowProcess.Delete(workFlowsId);
}
flagArray[1] = dal.Delete(workFlowsId);
if (flagArray[0] && flagArray[1])
{
flag = true;
}
return flag;
}
private static void EncodeWorkFlowInfo(WorkFlowsInfo workFlowsInfo)
{
if (workFlowsInfo != null)
{
workFlowsInfo.FlowName = DataSecurity.HtmlEncode(workFlowsInfo.FlowName);
workFlowsInfo.Description = DataSecurity.HtmlEncode(workFlowsInfo.Description);
}
}
public static bool Exists(string flowName)
{
return dal.Exists(flowName);
}
public static int GetMaxId()
{
return dal.GetMaxId();
}
public static WorkFlowsInfo GetWorkFlowsById(int workFlowsId)
{
return GetWorkFlowsById(workFlowsId, true);
}
public static WorkFlowsInfo GetWorkFlowsById(int workFlowsId, bool isDecode)
{
WorkFlowsInfo workFlowsById = dal.GetWorkFlowsById(workFlowsId);
if (isDecode)
{
DecodeWorkFlowInfo(workFlowsById);
}
return workFlowsById;
}
public static IList<WorkFlowsInfo> GetWorkFlowsList()
{
return dal.GetWorkFlowsList();
}
public static bool Update(WorkFlowsInfo workFlowsInfo)
{
EncodeWorkFlowInfo(workFlowsInfo);
return dal.Update(workFlowsInfo);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -