/// <summary>
 ///
 /// </summary>
 /// <param name="httpProxy"></param>
 /// <param name="connectorProvider"></param>
 /// <param name="loggerFactory"></param>
 public DefaultUserServiceProxy(IHttpClientProxy httpProxy,
                                ExternalConnectorProvider connectorProvider,
                                ILoggerFactory loggerFactory)
 {
     this.httpProxy         = httpProxy;
     this.connectorProvider = connectorProvider;
     logger = loggerFactory.CreateLogger <DefaultUserServiceProxy>();
 }
Exemplo n.º 2
0
        public static string Url(string url)
        {
            ExternalConnectorProvider provider = ProcessEngineServiceProvider.Resolve <ExternalConnectorProvider>();

            return(provider.ResolveUrl(url));
        }
Exemplo n.º 3
0
 public SendTaskActivityBehavior()
 {
     externalConnector = ProcessEngineServiceProvider.Resolve <ExternalConnectorProvider>();
 }
Exemplo n.º 4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="applicationLifetime"></param>
 public WorkflowUsersController(IApplicationLifetime applicationLifetime,
                                ExternalConnectorProvider externalConnectorProvider)
 {
     this.applicationLifetime       = applicationLifetime;
     this.externalConnectorProvider = externalConnectorProvider;
 }
 /// <inheritdoc />
 public GetDeptLeaderBookmarkRuleCmd()
 {
     externalConnector = ProcessEngineServiceProvider.Resolve <ExternalConnectorProvider>();
 }
Exemplo n.º 6
0
        // CREATE METHODS

        public virtual IExecutionEntity CreateProcessInstanceExecution(IProcessDefinition processDefinition, string businessKey, string tenantId, string initiatorVariableName)
        {
            IExecutionEntity processInstanceExecution = executionDataManager.Create();

            if (ExecutionRelatedEntityCountEnabledGlobally)
            {
                ((ICountingExecutionEntity)processInstanceExecution).IsCountEnabled = true;
            }

            processInstanceExecution.ProcessDefinitionId      = processDefinition.Id;
            processInstanceExecution.ProcessDefinitionKey     = processDefinition.Key;
            processInstanceExecution.ProcessDefinitionName    = processDefinition.Name;
            processInstanceExecution.ProcessDefinitionVersion = processDefinition.Version;
            processInstanceExecution.BusinessKey = businessKey;
            processInstanceExecution.IsScope     = true; // process instance is always a scope for all child executions

            // Inherit tenant id (if any)
            if (tenantId is object)
            {
                processInstanceExecution.TenantId = tenantId;
            }

            string authenticatedUserId = Authentication.AuthenticatedUser.Id;

            processInstanceExecution.StartTime   = Context.ProcessEngineConfiguration.Clock.CurrentTime;
            processInstanceExecution.StartUserId = authenticatedUserId;
            processInstanceExecution.StartUser   = Authentication.AuthenticatedUser.FullName;

            // Store in database
            Insert(processInstanceExecution, false);

            if (string.IsNullOrWhiteSpace(processInstanceExecution.StartUserId) == false)
            {
                IUserInfo                 starter           = null;
                IUserServiceProxy         userService       = ProcessEngineServiceProvider.Resolve <IUserServiceProxy>();
                ExternalConnectorProvider externalConnector = ProcessEngineServiceProvider.Resolve <ExternalConnectorProvider>();

                starter = new UserInfo
                {
                    Id       = processInstanceExecution.StartUserId,
                    FullName = processInstanceExecution.StartUserId
                };
                //TODO: 考虑性能问题,暂时不要获取人员信息
                //try
                //{
                //    starter = AsyncHelper.RunSync<IUserInfo>(() => userService.GetUser(processInstanceExecution.StartUserId));
                //    starter.TenantId = processInstanceExecution.TenantId;
                //}
                //catch (Exception ex)
                //{
                //    logger.LogError(ex, ex.Message);
                //    starter = new UserInfo
                //    {
                //        Id = processInstanceExecution.StartUserId,
                //        FullName = processInstanceExecution.StartUserId
                //    };
                //}

                //保存调用用户变量
                processInstanceExecution.SetVariable(processInstanceExecution.StartUserId, starter);
            }

            if (initiatorVariableName is object)
            {
                processInstanceExecution.SetVariable(initiatorVariableName, authenticatedUserId);
            }

            // Need to be after insert, cause we need the id
            processInstanceExecution.ProcessInstanceId     = processInstanceExecution.Id;
            processInstanceExecution.RootProcessInstanceId = processInstanceExecution.Id;
            //TODO: 当没有用户任务的时候,添加identity会报错
            if (authenticatedUserId is object)
            {
                IdentityLinkEntityManager.AddIdentityLink(processInstanceExecution, authenticatedUserId, null, IdentityLinkType.STARTER);
            }

            // Fire events
            if (EventDispatcher.Enabled)
            {
                EventDispatcher.DispatchEvent(ActivitiEventBuilder.CreateEntityEvent(ActivitiEventType.ENTITY_CREATED, processInstanceExecution));
            }

            return(processInstanceExecution);
        }