internal bool CreateTransitionHistory(Guid tenantId, WorkFlowTransition trasition)
 {
     try
     {
         var cmd = CreateProcedureCommand("dbo.WorkFlowTransition_Create");
         cmd.AppendGuid("@guidTenantId", tenantId);
         cmd.AppendGuid("@guidTransitionHistoryId", trasition.TransitionHistoryId);
         cmd.AppendGuid("@guidRefId", trasition.RefId);
         cmd.AppendXSmallText("@strEntityCode", trasition.EntityId);
         cmd.AppendGuid("@guidWorkFlowStepId", trasition.WorkFlowStepId);
         cmd.AppendDateTime("@dtStartTime", trasition.StartTime);
         if (trasition.AssignedUserId != Guid.Empty)
         {
             cmd.AppendGuid("@guidAssignedUserId", trasition.AssignedUserId);
         }
         if (trasition.AuditInfo != null)
         {
             if (trasition.AuditInfo.CreatedBy != Guid.Empty)
             {
                 cmd.AppendGuid("@guidCreatedBy", trasition.AuditInfo.CreatedBy);
             }
         }
         ExecuteCommand(cmd);
         return(true);
     }
     catch (SqlException e)
     {
         throw ReportAndTranslateException(e, "DataWorkFlowTransition::WorkFlowTransition_Create");
     }
 }
        private WorkFlowResultMessage <WorkFlowTransition> Transition(Guid tenantId, TransitionWapper operationWapper)
        {
            var resM = new WorkFlowResultMessage <WorkFlowTransition>();

            //-------Update  last active step endtime
            var transactionHistories = _managerTrasition.GetTransitionHistoryByRefId(tenantId, operationWapper.RefId);

            if (transactionHistories.Count > 0)
            {
                var currentTrasitionTypes = (from transactionHistorie in transactionHistories where transactionHistorie.TransitionType.Id == operationWapper.CurrentTransitionType
                                             select transactionHistorie).OrderByDescending(p => p.StartTime).ToList();
                if (currentTrasitionTypes.Count > 0)
                {
                    var transitionLast = new WorkFlowTransition {
                        TransitionHistoryId = currentTrasitionTypes[0].TransitionHistoryId, EndTime = DateTime.UtcNow
                    };
                    _managerTrasition.UpdateTransitionHistory(tenantId, transitionLast);
                }

                dynamic jsonObject = new JObject();
                jsonObject.CurrentWorkFlowStep = operationWapper.NextTransitionType;

                var myObj = new JObject();
                myObj.Add(operationWapper.EntityName, jsonObject);

                IEntityResourceManager _iEntityResourceManager = new VPC.Framework.Business.EntityResourceManager.Contracts.EntityResourceManager();
                var resultId = _iEntityResourceManager.UpdateResultWithoutWorkFlow(tenantId, operationWapper.UserId, operationWapper.RefId,
                                                                                   operationWapper.EntityName, myObj, operationWapper.SubTypeName);

                //----- Insert into history table
                var entityId    = iMetadataManager.GetEntityContextByEntityName(operationWapper.EntityName);
                var subTypeCode = iMetadataManager.GetSubTypeId(operationWapper.EntityName, operationWapper.SubTypeName);
                var workFlow    = _reviewWorkFlow.GetWorkFlow(tenantId, entityId, subTypeCode);
                if (workFlow == null)
                {
                    throw new CustomWorkflowException <WorkFlowMessage>(WorkFlowMessage.NoOperationActivity);
                }
                var itsCurrentStep = _managerWorkFlowStep.GetWorkFlowSteps(tenantId, workFlow.WorkFlowId).FirstOrDefault(x => x.TransitionType.Id == operationWapper.NextTransitionType);
                var transitionNew  = new WorkFlowTransition();
                transitionNew.TransitionHistoryId = Guid.NewGuid();
                transitionNew.StartTime           = DateTime.UtcNow;
                transitionNew.WorkFlowStepId      = itsCurrentStep.WorkFlowStepId;
                transitionNew.EntityId            = entityId;
                transitionNew.RefId = operationWapper.RefId;
                _managerTrasition.CreateTransitionHistory(tenantId, transitionNew);
                resM.Result = transitionNew;
            }


            return(resM);
        }
 internal bool UpdateTransitionHistory(Guid tenantId, WorkFlowTransition trasition)
 {
     try
     {
         var cmd = CreateProcedureCommand("dbo.WorkFlowTransition_Update");
         cmd.AppendGuid("@guidTenantId", tenantId);
         cmd.AppendGuid("@guidTransitionHistoryId", trasition.TransitionHistoryId);
         cmd.AppendDateTime("@dtEndTime", trasition.EndTime.Value);
         ExecuteCommand(cmd);
         return(true);
     }
     catch (SqlException e)
     {
         throw ReportAndTranslateException(e, "DataWorkFlowTransition::WorkFlowTransition_Update");
     }
 }
        private static WorkFlowTransition ReadTransition(SqlDataReader reader)
        {
            var objWorkFow = new WorkFlowTransition
            {
                TransitionHistoryId = reader.IsDBNull(0) ? Guid.Empty : reader.GetGuid(0),
                RefId          = reader.IsDBNull(1) ? Guid.Empty : reader.GetGuid(1),
                EntityId       = reader.IsDBNull(2) ? string.Empty : reader.GetString(2),
                WorkFlowStepId = reader.IsDBNull(3) ? Guid.Empty : reader.GetGuid(3),
                StartTime      = reader.IsDBNull(4) ? DateTime.MinValue : reader.GetDateTime(4),
                EndTime        = reader.IsDBNull(5) ? (DateTime?)null : reader.GetDateTime(5),
                AssignedUserId = reader.IsDBNull(6) ? Guid.Empty : reader.GetGuid(6),
                AuditInfo      = new AuditDetail
                {
                    CreatedBy = reader.IsDBNull(7) ? Guid.Empty : reader.GetGuid(7)
                },
                TransitionType = new ItemName {
                    Id = reader.IsDBNull(8) ? Guid.Empty : reader.GetGuid(8)
                }
            };

            return(objWorkFow);
        }
Esempio n. 5
0
 bool IManagerWorkFlowTransition.UpdateTransitionHistory(Guid tenantId, WorkFlowTransition trasition)
 {
     return(_adminTransition.UpdateTransitionHistory(tenantId, trasition));
 }
 bool IAdminWorkFlowTransition.UpdateTransitionHistory(Guid tenantId, WorkFlowTransition trasition)
 {
     return(_dataTransition.UpdateTransitionHistory(tenantId, trasition));
 }