コード例 #1
0
ファイル: ActivityWorker.cs プロジェクト: Bassist067/AIR.SDK
        protected string ProcessActivityTask(ActivityTask task, IWorkflow workflow)
        {
            Debug.Assert(task != null);
            var result = "";

            try
            {
                var input = Utils.GetDataFromStore(task.Input, _storeClient);

                if (workflow != null)
                {
                    // Get activity and run processor
                    var activity = workflow.GetActivity(task.ActivityId);
                    if (activity != null)
                    {
                        result = activity.TaskProcessor(input);

                        Logger.Fatal("[{0}] Result: [{1}]", task.ActivityId, result);
                    }
                    else
                    {
                        result = Utils.SerializeToJSON(new StepResult <string>(
                                                           $"Activity '{task.ActivityId}' not found.", false));
                    }
                }
                else
                {
                    result = TaskProcessor(input);

                    Logger.Fatal("[{0}] Result: [{1}]", task.ActivityId, result);
                }

                TaskCompleted(task.TaskToken, Utils.PutDataToStore(result, _storeClient));
            }
            catch (Exception e)
            {
                Logger.Error(e, "[{0}]. {1}", task.ActivityId, e.Message);

                result = Utils.SerializeToJSON(new StepResult <string>(e.Message, false));

                //TaskFailed(task.TaskToken, e.Message, "");
            }

            return(result);
        }