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()); }