public static ConversationLog GetConversationLog(User user1, User user2, bool createIfMissing) { // have to order the user names if (user1.UserID.CompareTo(user2.UserID) > 0) { User userMid = user2; user2 = user1; user1 = userMid; } string find = user1.UserID + "<->" + user2.UserID; lock (ConversationLogs) { ConversationLog tqh; if (!ConversationLogs.TryGetValue(find, out tqh)) { if (!createIfMissing) { return(null); } tqh = new ConversationLog(find, user1, user2); ConversationLogs[find] = tqh; return(tqh); } return(tqh); } }
public Result HeardSomeoneSay1Sentence(bool saveResultsAsIfRealtime, bool useConversationDataAsIfRealtime, User theFactSpeaker, User toWhom, string message, Result result, ThreadControl control) { if (MyBot.useServitor) { return(null); } Logger.Warn("in TODO code"); bool toWhomNonNull = toWhom != null; string whatListenerLastSaid = null; if (toWhomNonNull && useConversationDataAsIfRealtime) { whatListenerLastSaid = toWhom.JustSaid; } var log = ConversationLog.GetConversationLog(theFactSpeaker, toWhom, true); Utterance spoken = log.AddSpoken(this, theFactSpeaker, toWhom, message); Result res = HeardSome1Say11Sentence(saveResultsAsIfRealtime, useConversationDataAsIfRealtime, theFactSpeaker, toWhom, spoken, message, result, control); if (saveResultsAsIfRealtime) { if (toWhomNonNull) { toWhom.That = message; } theFactSpeaker.JustSaid = message; if (toWhomNonNull) { toWhom.JustSaid = whatListenerLastSaid; } return(res); } return(res); }