示例#1
0
 public FlowActionRejectToStart(FlowActionRequest dbObj) : base(dbObj)
 {
     this.currentActivityGuid = concreteMetaObj.currentActivityGuid;
     this.startActivityGuid   = concreteMetaObj.startActivityGuid;
     this.roles = JsonConvert.DeserializeObject(
         concreteMetaObj.roles.ToString(), typeof(List <Paticipant>));
 }
示例#2
0
        public FlowAction(FlowActionRequest dbObj)
        {
            if (dbObj.flowInstance != null)
            {
                flowInstanceId   = dbObj.flowInstance.flowInstanceId;
                flowInstanceGuid = dbObj.flowInstance.guid;
            }
            flowActionRequestId        = dbObj.flowActionRequestId;
            requestType                = dbObj.requestType;
            bizDocumentGuid            = dbObj.bizDocumentGuid;
            bizDocumentTypeCode        = dbObj.bizDocumentTypeCode;
            userMemo                   = dbObj.userMemo;
            bizDataPayloadJson         = dbObj.bizDataPayloadJson;
            concreteFlowActionMetaJson = dbObj.concreteFlowActionMetaJson;
            optionalFlowActionDataJson = dbObj.optionalFlowActionDataJson;
            createTime                 = dbObj.createTime;
            userId            = dbObj.userId;
            userGuid          = dbObj.userGuid;
            delegateeUserId   = dbObj.delegateeUserId;
            delegateeUserGuid = dbObj.delegateeUserGuid;

            // Dynamic properties
            concreteMetaObj = JsonConvert.DeserializeObject(
                dbObj.concreteFlowActionMetaJson);
        }
示例#3
0
 public FlowActionInviteOther(FlowActionRequest dbObj) : base(dbObj)
 {
     this.currentActivityGuid = concreteMetaObj.currentActivityGuid;
     this.roles = JsonConvert.DeserializeObject(
         concreteMetaObj.roles.ToString(), typeof(List <Paticipant>));
     this.relativeFlowTaskForUserId = concreteMetaObj.relativeFlowTaskForUserId;
 }
示例#4
0
 public FlowActionMoveToAutoGenerated(FlowActionRequest dbObj) : base(dbObj)
 {
     this.currentActivityGuid = concreteMetaObj.currentActivityGuid;
     this.roles = JsonConvert.DeserializeObject(
         concreteMetaObj.roles.ToString(), typeof(List <Paticipant>));
     this.connectionGuid = concreteMetaObj.connectionGuid;
 }
示例#5
0
 private void updateReqProcessingResultInDB(FlowActionRequest reqInDb,
                                            EnumFlowActionRequestResultType resultType, string failReason = null)
 {
     reqInDb.isProcessed = true;
     reqInDb.finishTime  = DateTime.Now;
     reqInDb.resultType  = resultType;
     reqInDb.failReason  = failReason;
 }
示例#6
0
 public FlowActionJumpTo(FlowActionRequest dbObj) : base(dbObj)
 {
     this.currentActivityGuid = concreteMetaObj.currentActivityGuid;
     this.roles = JsonConvert.DeserializeObject(
         concreteMetaObj.roles.ToString(), typeof(List <Paticipant>));
     this.nextActivityGuid = concreteMetaObj.nextActivityGuid;
     this.forceJump        = concreteMetaObj.forceJump;
 }
示例#7
0
 public FlowActionMoveTo(FlowActionRequest dbObj) : base(dbObj)
 {
     currentActivityGuid = concreteMetaObj.currentActivityGuid;
     roles = JsonConvert.DeserializeObject(
         concreteMetaObj.roles.ToString(), typeof(List <Paticipant>));
     connectionGuid    = concreteMetaObj.connectionGuid;
     delegateeUserId   = concreteMetaObj.delegateeUserId;
     delegateeUserGuid = concreteMetaObj.delegateeUserGuid;
 }
示例#8
0
 private void updateRequestToSuccess(FlowActionRequest reqInDb,
                                     FlowInstance flowInst)
 {
     reqInDb.isProcessed = true;
     reqInDb.finishTime  = DateTime.Now;
     reqInDb.resultType  = EnumFlowActionRequestResultType.success;
     if (reqInDb.flowInstance == null || reqInDb.flowInstanceGuid == null)
     {
         reqInDb.flowInstance     = flowInst;
         reqInDb.flowInstanceGuid = flowInst.guid;
     }
 }
示例#9
0
        private void updateTaskForUserStatesAfterAction(EnouFlowInstanceContext db,
                                                        int actionUserId, DateTime bizTimeStamp, DateTime newBizTimeStamp,
                                                        string currentActivityGuid, FlowInstance flowInst, FlowActionRequest reqInDb)
        {
            var tasks = db.flowTaskForUsers.Where(t =>
                                                  t.FlowInstance.flowInstanceId == flowInst.flowInstanceId &&
                                                  t.bizTimeStamp == bizTimeStamp &&
                                                  t.currentActivityGuid == currentActivityGuid).ToList();

            tasks.ForEach(t =>
            {
                if (t.userId != actionUserId)
                {
                    // 其他用户已删除该任务或是已完成的邀请提供处理意见的任务,不需要标记为过期
                    if (t.taskState != EnumFlowTaskState.deletedByUser && t.taskState != EnumFlowTaskState.done)
                    {
                        t.taskState = EnumFlowTaskState.obsoleted;
                    }
                }
                else
                {
                    t.finishTime        = newBizTimeStamp;
                    t.taskState         = EnumFlowTaskState.done;
                    t.FlowActionRequest = reqInDb;
                    t.delegateeUserId   = reqInDb.delegateeUserId; // 有可能是被任务代理人完成
                    t.delegateeUserGuid = reqInDb.delegateeUserGuid;
                }
            });

            //db.SaveChanges();
        }
示例#10
0
 public FlowActionTerminate(FlowActionRequest dbObj) : base(dbObj)
 {
     this.currentActivityGuid = concreteMetaObj.currentActivityGuid;
     this.nextActivityGuid    = concreteMetaObj.nextActivityGuid;
 }
示例#11
0
 public FlowActionStart(FlowActionRequest dbObj) : base(dbObj)
 {
     this.needGenerateTaskForUser = concreteMetaObj.needGenerateTaskForUser;
     this.roles = concreteMetaObj.roles;
 }