Beispiel #1
0
        public BaseResponse <List <WorkFlowDefinition> > EditWorkFlowDefinition(BaseBatchRequest <WorkFlowDefinition> condtion)
        {
            var    result = WorkFlowDefinition.EditDefs(condtion.rows);
            string msg    = string.Format("已新增/编辑{0}条数据", result.Count);

            //记录到日志
            string      thisUserId = User.Identity.Name;
            UserManager thisUser   = UserManager.getUserById(thisUserId);
            string      logMsg     = string.Empty;

            foreach (var item in result)
            {
                if (condtion.rows.Select(p => p.Id).Contains(item.Id))
                {
                    logMsg = "编辑工作流定义名称/描述";
                }
                else
                {
                    logMsg = "新增工作流定义";
                }
                UserLog.create(logMsg, "工作流定义", thisUser, item);
            }


            return(BaseResponse.getResult(result, msg));
        }
Beispiel #2
0
        public BaseResponse <WorkFlowDefinition> GetWorkFlowDefinitionById(string id)
        {
            var info = WorkFlowDefinition.GetInstance(id);

            info.SetUnits();
            return(BaseResponse.getResult(info));
        }
Beispiel #3
0
        public BaseResponse <WorkFlowDefinition> EditWorkFlowDefUnits(WorkFlowDefEditRequest condtion)
        {
            var info   = WorkFlowDefinition.GetInstance(condtion.Id);
            var result = info.EditDefUnit(condtion);

            //记录到日志
            string      thisUserId = User.Identity.Name;
            UserManager thisUser   = UserManager.getUserById(thisUserId);

            UserLog.create("编辑工作流定义流程详情", "工作流定义", thisUser, info);

            return(BaseResponse.getResult(result, "保存成功"));
        }
Beispiel #4
0
        public BaseResponse DelWorkFlowDefinition(string id)
        {
            var info = WorkFlowDefinition.GetInstance(id);

            info.Delete();

            //记录到日志
            string      thisUserId = User.Identity.Name;
            UserManager thisUser   = UserManager.getUserById(thisUserId);

            UserLog.create("删除工作流定义(物理删除)", "工作流定义", thisUser, info);

            return(BaseResponse.getResult("删除成功"));
        }
Beispiel #5
0
        public BaseResponse <WorkFlowDefSetpDetail> EditStepApprovalInfo(WorkFlowDefStep condtion)
        {
            var info   = WorkFlowDefSetpDetail.GetDetailInstance(condtion.Id);
            var def    = WorkFlowDefinition.GetInstance(info.DefinitionId);
            var result = info.EditStepApprovalInfo(condtion);

            //保存到日志
            string      thisUserId = User.Identity.Name;
            UserManager thisUser   = UserManager.getUserById(thisUserId);

            UserLog.create(string.Format("编辑工作流步骤[{0}]的审批方式与角色配置信息", info.name), "工作流定义", thisUser, def);

            return(BaseResponse.getResult(result, "保存成功"));
        }
        GetOrAddDefinition
        (
            string definitionID
            , Func <string> getDefinitionXamlProcessFunc
        )
        {
            WorkFlowDefinition r = null;
            var cached           = _cache
                                   .TryGetValue
                                   (
                definitionID
                , out r
                                   );

            if (!cached)
            {
                _locker
                .LockIf
                (
                    () =>
                {
                    return
                    (
                        !_cache
                        .TryGetValue
                        (
                            definitionID
                            , out r
                        )
                    );
                }
                    ,
                    () =>
                {
                    Console.WriteLine($"Compile {definitionID}");
                    var xaml = getDefinitionXamlProcessFunc();
                    r        = Compile(definitionID, xaml);
                    cached   = _cache
                               .TryAdd
                               (
                        definitionID
                        , r
                               );
                }
                );
            }
            return
                (r);
        }
        public WorkFlowDefinitionList getWorkFlowDefinitions()
        {
            WorkFlowDefinitionList l          = new WorkFlowDefinitionList();
            Assembly trackingWorkFlowAssembly = Assembly.Load("TrackingWorkFlow");

            Type[] types  = trackingWorkFlowAssembly.GetTypes();
            Type   target = trackingWorkFlowAssembly.GetType("TrackingWorkFlow.TrackingWorkFlow");

            foreach (Type t in types)
            {
                if (t.IsSubclassOf(target))
                {
                    WorkFlowDefinition WFD = new WorkFlowDefinition();
                    WFD.WFName = t.Name;
                    l.Add(WFD);
                }
            }
            return(l);
        }
 public WorkFlowDefinitionList getWorkFlowDefinitions()
 {
     WorkFlowDefinitionList l = new WorkFlowDefinitionList();
     Assembly trackingWorkFlowAssembly = Assembly.Load("TrackingWorkFlow");
     Type[] types = trackingWorkFlowAssembly.GetTypes();
     Type target = trackingWorkFlowAssembly.GetType("TrackingWorkFlow.TrackingWorkFlow");
     foreach (Type t in types)
     {
         if (t.IsSubclassOf(target))
         {
             WorkFlowDefinition WFD = new WorkFlowDefinition();
             WFD.WFName = t.Name;
             l.Add(WFD);
         }
     }
     return l;
 }
Beispiel #9
0
 public BaseResponse <BaseResponseList <WorkFlowDefinition> > GetWorkFlowDefinitionList(BaseRequest condtion)
 {
     return(BaseResponse.getResult(WorkFlowDefinition.SearchList(condtion)));
 }