Esempio n. 1
0
        /// <summary>
        /// Serialize a ConversationalResponseItems object into a string for SQL.
        /// </summary>
        /// <param name="cri">The ConversationalResponseItems object to serialize.</param>
        /// <returns>A string representing a ConversationalResponseItems object.</returns>
        public static string Serialize(ConversationalResponseItems cri)
        {
            StringBuilder serializePayload = new StringBuilder();

            serializePayload.Append("{");

            foreach (ConversationalResponseItem responseItem in cri.ResponseItems)
            {
                serializePayload.Append(responseItem.To.ToString());
                serializePayload.Append(":");
                serializePayload.Append("\"");
                serializePayload.Append(responseItem.Response);
                serializePayload.Append("\"");

                serializePayload.Append(":");
                serializePayload.Append(responseItem.AltResponse);

                serializePayload.Append(":");
                serializePayload.Append(responseItem.EngineCommand);

                serializePayload.Append(":");
                serializePayload.Append(responseItem.VisibilityOptions);


                serializePayload.Append("||||");
            }

            serializePayload.Append("}");

            return(serializePayload.ToString());
        }
Esempio n. 2
0
 /// <summary>
 /// Create a new ConversationalItem
 /// </summary>
 /// <param name="botname">The botname for the brains</param>
 /// <param name="conversationID">The Conversation_ID for this conversation</param>
 /// <param name="say">What the bot says to the user</param>
 /// <param name="cri">The responses alloted to the user to respond</param>
 public ConversationalItem(string botname, int conversationID, string say, ConversationalResponseItems cri)
 {
     this._botname        = botname;
     this._conversationID = conversationID;
     this._say            = say;
     this._cri            = cri;
 }
Esempio n. 3
0
        /// <summary>
        /// DeSerialize a string into a ConversationalResponseItems object.
        /// </summary>
        /// <param name="payload">The string to de-serialize.</param>
        /// <returns>A parsed ConversationalResponseItems object from the string.</returns>
        public static ConversationalResponseItems DeSerialize(string payload)
        {
            string rawData = payload.Substring(1, payload.Length - 2);

            string[] seperator = new string[1] {
                "||||"
            };

            string[] splitdata = rawData.Split(seperator, StringSplitOptions.RemoveEmptyEntries);

            ConversationalResponseItems returnCRI = new ConversationalResponseItems();

            foreach (string data in splitdata)
            {
                string[] responseItemData = data.Split(':');

                string[] args = { "", "", "" };

                for (int i = 0; i < 3; i++)
                {
                    if (responseItemData.Length > i + 2)
                    {
                        args[i] = responseItemData[i + 2];
                    }
                }

                returnCRI.AddResponse(int.Parse(responseItemData[0]), responseItemData[1].Substring(1, responseItemData[1].Length - 2), args[0], args[1], args[2]);
            }

            return(returnCRI);
        }
Esempio n. 4
0
        public void UpdateConversation(string bot_name, int id, string say, ConversationalResponseItems cri)
        {
            SQLiteCommand command = _SQL.CreateCommand();

            command.CommandText = "UPDATE " + bot_name + " SET conversation_say = $say, conversation_responseitems = $cri WHERE conversation_id = " + id.ToString();
            command.Parameters.AddWithValue("$say", say);
            command.Parameters.AddWithValue("$cri", ConversationalResponseItems.Serialize(cri));
            command.ExecuteNonQuery();
        }
Esempio n. 5
0
        public void AddNewConversation(string bot_name, string say, ConversationalResponseItems items)
        {
            SQLiteCommand addNewResponseCommand = _SQL.CreateCommand();

            addNewResponseCommand.CommandText = "INSERT INTO " + bot_name + " (conversation_say, conversation_responseitems) VALUES($say, $items)";
            addNewResponseCommand.Parameters.AddWithValue("$say", say);
            addNewResponseCommand.Parameters.AddWithValue("$items", ConversationalResponseItems.Serialize(items));
            addNewResponseCommand.ExecuteNonQuery();
        }
Esempio n. 6
0
        public ConversationalResponseItems GetBotCRI(string bot_name, int conversationID)
        {
            SQLiteCommand command = _SQL.CreateCommand();

            command.CommandText = "SELECT conversation_responseitems FROM " + bot_name + " WHERE conversation_id = " + conversationID.ToString();
            SQLiteDataReader reader = command.ExecuteReader();

            reader.Read();

            return(ConversationalResponseItems.DeSerialize(reader.GetString(0)));
        }
Esempio n. 7
0
        /// <summary>
        /// Get a ConversationalItem from a certain point in the conversation by specifing an ID
        /// </summary>
        /// <param name="bot_name">The bot to retrieve the specific ConversationalItem from</param>
        /// <param name="id">The ID of the conversational item needed</param>
        /// <returns>The ConversationalItme or null</returns>
        public ConversationalItem GetBotConversationByID(string bot_name, int id)
        {
            SQLiteCommand command = _SQL.CreateCommand();

            command.CommandText = "SELECT * FROM " + bot_name + " WHERE conversation_id = " + id.ToString();
            SQLiteDataReader reader = command.ExecuteReader();

            if (reader.HasRows)
            {
                reader.Read();

                return(new ConversationalItem(bot_name, reader.GetInt32(0), reader.GetString(1), ConversationalResponseItems.DeSerialize(reader.GetString(2))));
            }
            else
            {
                return(null);
            }
        }