public void Notify(IDelegateTask task)
        {
            string assignee = task.Assignee;

            if (string.IsNullOrWhiteSpace(assignee))
            {
                return;
            }

            IUserInfo user = task.GetVariableLocal <IUserInfo>($"{assignee}");

            if (!(user is null) && user.Id == assignee)
            {
                return;
            }

            IUserServiceProxy userService = ProcessEngineServiceProvider.Resolve <IUserServiceProxy>();

            user = AsyncHelper.RunSync(() => userService.GetUser(assignee));
            if (user == null)
            {
                logger.LogError($"找不到执行人{assignee}");
            }
            else
            {
                user.TenantId     = task.TenantId;
                task.AssigneeUser = user.FullName;
            }

            task.SetVariableLocal($"{assignee}", user);
        }
        public void Notify(IDelegateTask task)
        {
            string assignee = task.Assignee;

            if (string.IsNullOrWhiteSpace(assignee))
            {
                return;
            }

            IUserInfo user;

            if (task.HasVariableLocal(assignee))
            {
                user = task.GetVariableLocal <IUserInfo>(assignee);
                if (user is object && string.Equals(user.Id, assignee, StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }
            }

            IUserServiceProxy userService = ProcessEngineServiceProvider.Resolve <IUserServiceProxy>();

            user = userService.GetUser(assignee)
                   .ConfigureAwait(false)
                   .GetAwaiter()
                   .GetResult();
            if (user == null)
            {
                logger.LogError($"找不到执行人{assignee}");
            }
            else
            {
                user.TenantId     = task.TenantId;
                task.AssigneeUser = user.FullName;
            }

            task.SetVariableLocal($"{assignee}", user);
        }