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

📄 workflow.cs

📁 动易SiteFactory&#8482 网上商店系统1.0源代码
💻 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 + -