Пример #1
0
        public string subChat(string line, string topic, Request request, bool allowMultiplesTemplates)
        {
            //----------------------
            // snarf from "srai"
            Unifiable tempTopic  = topic;
            Request   subRequest = request.CreateSubRequest(line, null, RequestKind.TagHandler);
            //String gn = GetAttribValue("graph", null);
            string gn = "msm";

            if (gn != null)
            {
                subRequest.Graph = request.GetGraph(gn);
            }
            //subRequest.depth = request.depth + 1;

            subRequest.Topic                    = tempTopic;
            subRequest.ParentRequest            = this.request;
            subRequest.StartedOn                = this.request.StartedOn;
            subRequest.TimesOutAt               = this.request.TimesOutAt;
            subRequest.ProcessMultipleTemplates = allowMultiplesTemplates;

            Result subResult = null;// subRequest;
            var    prev      = subRequest.GraphsAcceptingUserInput;
            var    prevSO    = user.SuspendAddResultToUser;

            try
            {
                subRequest.GraphsAcceptingUserInput = true;
                var newresult = request.CreateResult(subRequest);
                //subRequest.CurrentResult = newresult;
                user.SuspendAddResultToUser = true;
                subResult = (Result)Proc.Chat(subRequest);
                // subResult = this.Proc.Chat(subRequest, request.Graph);
            }
            finally
            {
                user.SuspendAddResultToUser         = prevSO;
                subRequest.GraphsAcceptingUserInput = prev;
            }
            //this.request.hasTimedOut = subRequest.hasTimedOut;
            //----------------------
            return(subResult.RawOutput.Trim());
        }