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);
                }
            }
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
 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);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 5
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        //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;
        }