Example #1
0
        /// <summary>
        /// Выполнение задания.
        /// </summary>
        /// <param name="chatJob">Джоб.</param>
        public virtual void ProcessAssignment(DirRX.ChatBotInfrastructure.IChatJob chatJob)
        {
            var chatBotProcessAssignment = DirRX.ChatBotTask.ChatBotProcessAssignments.GetAll().Where(x => Equals(x.ChatBotProcess, chatJob.Process)).FirstOrDefault();

            if (chatBotProcessAssignment == null)
            {
                return;
            }
            var assignment = Sungero.Workflow.Assignments.GetAll().Where(x => x.Id == chatBotProcessAssignment.AssignmentId && x.Status == Sungero.Workflow.Assignment.Status.InProcess).FirstOrDefault();

            if (assignment != null)
            {
                Logger.DebugFormat("Find assignment {0}", assignment.Id);
                var processAssignmentType = GetChatBotProcessAssignmentType(assignment);
                var resultVariant         = GetResultVariants(assignment).Where(x => x.ResultLocale == chatJob.Action).FirstOrDefault();
                if (resultVariant != null)
                {
                    var assignmentResult = resultVariant.ResultCode;
                    var res        = processAssignmentType.AllowResults.Where(x => x.Result == assignmentResult).FirstOrDefault();
                    var activeText = res != null ? res.ResultAssignmentText : string.Empty;
                    CompleteAssigment(assignment, assignmentResult, activeText);
                }
            }
            DirRX.ChatBotTask.ChatBotProcessAssignments.Delete(chatBotProcessAssignment);
        }
Example #2
0
 public virtual void ReceiveJob(DirRX.ChatBotInfrastructure.IChatJob chatJob)
 {
     Logger.DebugFormat("ProcessStage: {0}", chatJob.ProcessStage);
     if (CheckAssignmentType(chatJob.ProcessStage))
     {
         Logger.Debug("Start ProcessAssignment");
         ProcessAssignment(chatJob);
     }
 }
Example #3
0
 public override void ProcessJob(DirRX.ChatBotInfrastructure.IChatJob chatJob)
 {
     base.ProcessJob(chatJob);
     DirRX.ChatBotTask.PublicFunctions.Module.ReceiveJob(chatJob);
 }