protected internal override void UpdateSuspensionState(CommandContext commandContext, ISuspensionState suspensionState) { IJobDefinitionManager jobDefinitionManager = commandContext.JobDefinitionManager; IJobManager jobManager = commandContext.JobManager; if (!string.IsNullOrEmpty(JobDefinitionId)) { jobDefinitionManager.UpdateJobDefinitionSuspensionStateById(JobDefinitionId, suspensionState); } else if (!string.IsNullOrEmpty(ProcessDefinitionId)) { jobDefinitionManager.UpdateJobDefinitionSuspensionStateByProcessDefinitionId(ProcessDefinitionId, suspensionState); jobManager.UpdateStartTimerJobSuspensionStateByProcessDefinitionId(ProcessDefinitionId, suspensionState); } else if (!string.IsNullOrEmpty(ProcessDefinitionKey)) { if (!IsProcessDefinitionTenantIdSet) { jobDefinitionManager.UpdateJobDefinitionSuspensionStateByProcessDefinitionKey(ProcessDefinitionKey, suspensionState); jobManager.UpdateStartTimerJobSuspensionStateByProcessDefinitionKey(ProcessDefinitionKey, suspensionState); } else { jobDefinitionManager.UpdateJobDefinitionSuspensionStateByProcessDefinitionKeyAndTenantId(ProcessDefinitionKey, ProcessDefinitionTenantId, suspensionState); jobManager.UpdateStartTimerJobSuspensionStateByProcessDefinitionKeyAndTenantId(ProcessDefinitionKey, ProcessDefinitionTenantId, suspensionState); } } }
protected internal virtual void CreateJobDefinition(IProcessDefinition processDefinition, IJobDeclaration jobDeclaration) { IJobDefinitionManager jobDefinitionManager = JobDefinitionManager; JobDefinitionEntity jobDefinitionEntity = JobDefinitionEntity.CreateJobDefinitionEntity(jobDeclaration); jobDefinitionEntity.ProcessDefinitionId = processDefinition.Id; jobDefinitionEntity.ProcessDefinitionKey = processDefinition.Key; jobDefinitionEntity.TenantId = processDefinition.TenantId; jobDefinitionManager.Add(jobDefinitionEntity); jobDeclaration.JobDefinitionId = jobDefinitionEntity.Id; }
public UserOperationLogManager( DbContext dbContex, IExecutionManager _processInstanceManager, IProcessDefinitionManager _processDefinitionManager, ILoggerFactory loggerFactory, IJobManager _jobManager, IJobDefinitionManager _jobDefinitionManager, ITaskManager _taskManager , IDGenerator idGenerator) : base(dbContex, loggerFactory, idGenerator) { processInstanceManager = _processInstanceManager; processDefinitionManager = _processDefinitionManager; jobManager = _jobManager; jobDefinitionManager = _jobDefinitionManager; taskManager = _taskManager; }
protected internal override void CheckAuthorization(CommandContext commandContext) { foreach (var checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { if (!ReferenceEquals(JobDefinitionId, null)) { IJobDefinitionManager jobDefinitionManager = commandContext.JobDefinitionManager; JobDefinitionEntity jobDefinition = jobDefinitionManager.FindById(JobDefinitionId); if (jobDefinition != null && !ReferenceEquals(jobDefinition.ProcessDefinitionKey, null)) { var processDefinitionKey = jobDefinition.ProcessDefinitionKey; checker.CheckUpdateProcessDefinitionByKey(processDefinitionKey); if (includeSubResources) { checker.CheckUpdateProcessInstanceByProcessDefinitionKey(processDefinitionKey); } } } else { if (!ReferenceEquals(ProcessDefinitionId, null)) { checker.CheckUpdateProcessDefinitionById(ProcessDefinitionId); if (includeSubResources) { checker.CheckUpdateProcessInstanceByProcessDefinitionId(ProcessDefinitionId); } } else { if (!ReferenceEquals(ProcessDefinitionKey, null)) { checker.CheckUpdateProcessDefinitionByKey(ProcessDefinitionKey); if (includeSubResources) { checker.CheckUpdateProcessInstanceByProcessDefinitionKey(ProcessDefinitionKey); } } } } } }
protected internal virtual void UpdateJobDeclarations(IList <IJobDeclaration> jobDeclarations, ProcessDefinitionEntity processDefinition, bool isNewDeployment) { if (jobDeclarations == null || jobDeclarations.Count == 0) { return; } IJobDefinitionManager jobDefinitionManager = JobDefinitionManager; if (isNewDeployment) { // create new job definitions: foreach (IJobDeclaration jobDeclaration in jobDeclarations) { CreateJobDefinition(processDefinition, jobDeclaration); } } else { // query all job definitions and update the declarations with their Ids IList <JobDefinitionEntity> existingDefinitions = jobDefinitionManager.FindByProcessDefinitionId(processDefinition.Id); LegacyBehavior.MigrateMultiInstanceJobDefinitions(processDefinition, existingDefinitions); foreach (IJobDeclaration jobDeclaration in jobDeclarations) { bool jobDefinitionExists = false; foreach (JobDefinitionEntity jobDefinitionEntity in existingDefinitions) { // <!> Assumption: there can be only one job definition per activity and type if (jobDeclaration.ActivityId.Equals(jobDefinitionEntity.ActivityId) && jobDeclaration.JobHandlerType.Equals(jobDefinitionEntity.JobType)) { jobDeclaration.JobDefinitionId = jobDefinitionEntity.Id; jobDefinitionExists = true; break; } } if (!jobDefinitionExists) { // not found: create new definition CreateJobDefinition(processDefinition, jobDeclaration); } } } }
//private readonly IEventSubscriptionManager _eventSubscriptionManager; public ProcessDefinitionManager(DbContext dbContex, ILoggerFactory loggerFactory, IDGenerator idGenerator, IHistoricIncidentManager historicIncidentManager, IHistoricIdentityLinkLogManager historicIdentityLinkLogManager, IHistoricJobLogManager historicJobLogManager, IJobManager jobManager, IJobDefinitionManager jobDefinitionManager, IIdentityLinkManager identityLinkManager, IExecutionManager executionManager) : base(dbContex, loggerFactory, idGenerator) { _historicIncidentManager = historicIncidentManager; _historicIdentityLinkLogManager = historicIdentityLinkLogManager; _historicJobLogManager = historicJobLogManager; _jobManager = jobManager; _jobDefinitionManager = jobDefinitionManager; _identityLinkManager = identityLinkManager; _execuutionManager = executionManager; //_eventSubscriptionManager = eventSubscriptionManager; }