public static void SetValidatorsToStartWorkflow( string userProfileValidators, string additionalValidators, PMIWorkflow workflow) { if (string.IsNullOrEmpty(userProfileValidators) && additionalValidators.Contains("-mandatory")) { additionalValidators = additionalValidators.Replace("-mandatory", string.Empty); additionalValidators = additionalValidators.TrimEnd('|'); workflow.UserProfileAdditional = string.Empty; if (string.IsNullOrEmpty(additionalValidators)) { throw new Exception(VALIDATOR_ERROR_MESSAGE); } workflow.UserProfileValidators = additionalValidators; } else if (string.IsNullOrEmpty(userProfileValidators)) { throw new Exception(VALIDATOR_ERROR_MESSAGE); } else { workflow.UserProfileValidators = userProfileValidators; workflow.UserProfileAdditional = additionalValidators; } }
public static string BeginK2Workflow( K2CallType callTypeEnum, PMIWorkflow workflow, IK2ServiceProxy proxy) { try { return(proxy.BeginWorkflow(callTypeEnum, workflow)); } catch (Exception ex) { Logger.GetLogger().WriteError("PMIWorkflowManager", "ERROR WHEN STARTING WORKFLOW: ", ex); throw; } }
public virtual ActionResult HandleRequest( int operationId, int callType, string operationNumber, string classification, string additionalValidator) { Logger.GetLogger().WriteDebug( "PMI", string.Format( "Going to create PMI workflow. OPERATIONID: {0}; OPERATIONNUMBER: {1}", operationId, operationNumber)); int entityId = _clientPMIDetails.GetCurrentResultMatrix(operationId); int pmrCycleId = _clientPMIDetails.GetPRMCycle(entityId); K2CallType callTypeEnum = (K2CallType)callType; DateTime currentDate = DateTime.Now; bool TaskApplyMod = _clientPMIDetails.UpdateWFAppPMIdraft(entityId); PMIWorkflow workflow = new PMIWorkflow { OperationNumber = operationNumber, Classification = classification, EntityId = entityId, FolioID = "0", ValueDate = DateTime.Now, PMRCycleId = pmrCycleId, PmrValidationStage = "PMI_TL", EntityType = K2CallType.ResultMatrix.GetStringValue(), //??? Wrong, it should be callTypeEnum UserProfileAdditional = additionalValidator, UserName = IDBContext.Current.UserName, UserProfile = IDBContext.Current.FirstRole }; var currentAmount = _operationClauseClient.CalculateCurrentAmount(operationId, 1); string validators = PMIWorkflowManager.GetValidators(_ruleService, currentAmount, callTypeEnum); PMIWorkflowManager.SetValidatorsToStartWorkflow( validators, additionalValidator, workflow); string workflowName = callTypeEnum.GetStringValue().ToUpper(); new CommonDocument().Log( LogType.Debug, "K2 EXECUTION", string.Format("{0}-BEFORE OPERATIONID:{1}", workflowName, IDBContext.Current.Operation), workflow); var result = PMIWorkflowManager.BeginK2Workflow( callTypeEnum, workflow, _k2ServiceProxy); new CommonDocument().Log( LogType.Debug, "K2 EXECUTION", string.Format("{0}-AFTER OPERATIONID:{1} K2RESPONSE:{2}", workflowName, IDBContext.Current.Operation, result), workflow); if (result == K2Response.StartWorkFlow_InProgress.GetStringValue()) { IDBContext.Current.ErrorMessage(result); return(RedirectToAction( "Index", "StageFour", new { area = "PMI", operationNumber, ErrorMessage = true })); } else if (result != K2Response.StartWorkFlow_PMI.GetStringValue()) { IDBContext.Current.ErrorMessage(result); return(RedirectToAction( "Index", "StageFour", new { area = "PMI", operationNumber, ErrorMessage = true })); } Logger.GetLogger().WriteDebug( "PMI", string.Format("Workflow created: {0}. Going to update comments", result)); _resultsMatrixRepository .UpdateCommentsPMIAfterWorkFlowCreation(operationNumber, currentDate); Logger.GetLogger().WriteDebug("PMI", "Comments updated"); return(RedirectToAction("Index", "StageFour", new { area = "PMI", operationNumber })); }