Example #1
0
        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;
            }
        }
Example #2
0
 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 }));
        }