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); }
bool IManagerWorkFlowTransition.UpdateTransitionHistory(Guid tenantId, WorkFlowTransition trasition) { return(_adminTransition.UpdateTransitionHistory(tenantId, trasition)); }
bool IAdminWorkFlowTransition.UpdateTransitionHistory(Guid tenantId, WorkFlowTransition trasition) { return(_dataTransition.UpdateTransitionHistory(tenantId, trasition)); }