WorkFlowResultMessage <WorkFlowProcessMessage> IOperationFlowEngine.PreProcess(Guid tenantId, OperationWapper operation, WorkFlowProcessProperties properties) { var arrayList = new ArrayList { properties, operation.Data, tenantId }; var resM = new WorkFlowResultMessage <WorkFlowProcessMessage>(); var itsOperationProcess = WorkFlowCommon(tenantId, properties.EntityName, properties.SubTypeCode, operation.OperationType); if (itsOperationProcess.Count > 0) { //get its all process task var allTasks = _managerWorkFlowProcessTask.GetWorkFlowProcessTask(tenantId, itsOperationProcess[0].WorkFlowId); var itsPreProcessTasks = new List <WorkFlowProcessTaskInfo>(); foreach (var itsOperationProc in itsOperationProcess) { if (itsOperationProc.ProcessType == (int)WorkFlowProcessType.PreProcess) { itsPreProcessTasks = (from allProcessTask in allTasks where itsOperationProc.WorkFlowProcessId == allProcessTask.WorkFlowProcessId orderby allProcessTask.SequenceCode select allProcessTask).ToList(); } } foreach (var itsPreProcessTask in itsPreProcessTasks) { WorkFlowProcessMessage processResult = _processWorkFlow.OperationProcess(itsPreProcessTask.ProcessCode, arrayList); if (!processResult.Success) { throw new CustomWorkflowException <WorkFlowMessage>(processResult.ErrorMessage.Code); } resM.Result = processResult; } } var resultArrayList = new ArrayList { properties }; if (resM.Result != null && resM.Result.Data != null) { resultArrayList.Add(resM.Result.Data); } return(resM); }