Ejemplo n.º 1
0
        public void InitializeMessages(int zchatsession, string connectionString, string searchString = "")
        {
            SQLiteConnection connection = new SQLiteConnection(connectionString);
            string queryString = "select z_pk from zwamessage where zchatsession = " + zchatsession.ToString() + " order by zmessagedate asc";
            if (searchString != "")
            {
                //search performed!

                // hopefully nobody tries anything funny here
                queryString = "select z_pk from zwamessage where ztext like \"" + searchString+ "\" order by zmessagedate asc";
            }
            SQLiteCommand command = new SQLiteCommand(queryString, connection);

            lvMessageView.Items.Clear();

            try
            {
                connection.Open();
                SQLiteDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    WAMessage currentMessage = new WAMessage(Convert.ToInt32(reader[0]), connectionString);

                    WAGroupMember messageOwner = new WAGroupMember(currentMessage.ZGROUPMEMBER, connectionString);

                    ListViewItem currentListViewItem;

                    if (currentMessage.ZISFROMME == 1)
                    {
                        currentListViewItem = new ListViewItem("WhatsApp Owner");
                    }
                    else
                    {
                        string messageOwnerName = "";

                        // appending again somehow fixes the blank string problem
                        messageOwnerName += messageOwner.ZCONTACTNAME;

                        //if (messageOwnerName.Length == 0 && IsGroupMessage == false)
                        //{
                        //    //messageOwnerName = "Hello";
                        //}

                        //hackish but works
                        bool isNotOwner = true;
                        if (messageOwnerName.Length == 0)
                        {
                            messageOwnerName = this.Text;
                            isNotOwner = true;
                        }
                        currentListViewItem = new ListViewItem(messageOwnerName);

                        //really wtf?
                        if (isNotOwner)
                        {
                            currentListViewItem.BackColor = Color.Wheat;
                        }

                    }

                    currentListViewItem.SubItems.Add(currentMessage.ZTEXT);
                    currentListViewItem.SubItems.Add(MiscHelper.HandleWeirdEpochAddTimezoneInformation(currentMessage.ZMESSAGEDATE));

                    string eventType = "";
                    if (currentMessage.Z_GROUPEVENTTYPE == 0)
                    {
                        eventType = "Message";
                    }
                    else if (currentMessage.Z_GROUPEVENTTYPE == 1)
                    {
                        eventType = "Group Creation";
                    }
                    else if (currentMessage.Z_GROUPEVENTTYPE == 2)
                    {
                        eventType = "Joined Group";
                    }
                    else if (currentMessage.Z_GROUPEVENTTYPE == 3)
                    {
                        eventType = "Left Group";
                    }
                    else
                    {
                        eventType = "Unknown (" + currentMessage.Z_GROUPEVENTTYPE.ToString() + ")";
                    }

                    currentListViewItem.SubItems.Add(eventType);

                    lvMessageView.Items.Add(currentListViewItem);

                }
                reader.Close();

            }
            catch (Exception ex)
            {
                // oh no
            }
        }
Ejemplo n.º 2
0
        private void lbConversationList_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lbConversationList.Items.Count == 0)
            {
                return;
            }

            SQLiteConnection connection = new SQLiteConnection(connectionString);
            SQLiteCommand    command    = new SQLiteCommand("select * from zwachatsession order by zlastmessagedate desc limit 1 offset " + lbConversationList.SelectedIndex.ToString(), connection);

            try
            {
                connection.Open();
                SQLiteDataReader reader = command.ExecuteReader();

                string result = "";

                while (reader.Read())
                {
                    WAMessage getLastMessage = new WAMessage(Convert.ToInt32(reader[8]), connectionString);
                    if (reader[7].ToString().Length != 0)
                    {
                        CreateOrRemakeGroupMembersView();
                        groupMembersView.ClearListOfUsersInGroup();
                        groupMembersView.Text = "Group members for " + reader[13].ToString();
                        groupMembersView.DrawListOfUsersInGroup(Convert.ToInt32(reader[0]), connectionString);
                        selectedConversationIsGroup = true;
                    }
                    else
                    {
                        CreateOrRemakeGroupMembersView();
                        groupMembersView.ClearListOfUsersInGroup();
                        groupMembersView.Text       = reader[13].ToString() + " - not a group.";
                        selectedConversationIsGroup = false;
                    }

                    selectedConversationPk = Convert.ToInt32(reader[0]);

                    result = reader[13].ToString() + "\r\n"       // Partner Name
                             + reader[0].ToString() + "\r\n"      // ?
                             + reader[1].ToString() + "\r\n"      // ?
                             + reader[2].ToString() + "\r\n"      // ?
                             + reader[3].ToString() + "\r\n"      // Contact ID (0 for group)
                             + reader[7].ToString() + "\r\n"      // Group Info - empty if contact

                             + reader[4].ToString() + "\r\n"      // Deleted
                             + reader[5].ToString() + "\r\n"      // Number of messages
                             + reader[6].ToString() + "\r\n"      // Number of unread messages

                             + reader[9].ToString() + "\r\n"      // Properties
                             + "\r\n"
                                                                  //+ reader[10].ToString() + "\r\n"    // Last Message Date
                             + reader[11].ToString() + "\r\n"     // Contact Jabber ID
                             + reader[12].ToString() + "\r\n"     // Last Message Text
                             + reader[14].ToString() + "\r\n\r\n" // Saved input
                             + getLastMessage.ZPUSHNAME + "\r\n"  // Last Message
                             + getLastMessage.ZISFROMME + "\r\n"  // Last Message
                             + getLastMessage.ZTEXT;              // Last Message
                }
                reader.Close();

                txtDetailDescription.Text = result;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error while opening database: " + ex.Message);
            }
        }
Ejemplo n.º 3
0
        private void lbConversationList_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lbConversationList.Items.Count == 0)
            {
                return;
            }

            SQLiteConnection connection = new SQLiteConnection(connectionString);
            SQLiteCommand command = new SQLiteCommand("select * from zwachatsession order by zlastmessagedate desc limit 1 offset " + lbConversationList.SelectedIndex.ToString(), connection);

            try
            {
                connection.Open();
                SQLiteDataReader reader = command.ExecuteReader();

                string result = "";

                while (reader.Read())
                {
                    WAMessage getLastMessage = new WAMessage(Convert.ToInt32(reader[8]), connectionString);
                    if (reader[7].ToString().Length != 0)
                    {
                        CreateOrRemakeGroupMembersView();
                        groupMembersView.ClearListOfUsersInGroup();
                        groupMembersView.Text = "Group members for " + reader[13].ToString();
                        groupMembersView.DrawListOfUsersInGroup(Convert.ToInt32(reader[0]), connectionString);
                        selectedConversationIsGroup = true;
                    }
                    else
                    {
                        CreateOrRemakeGroupMembersView();
                        groupMembersView.ClearListOfUsersInGroup();
                        groupMembersView.Text = reader[13].ToString() + " - not a group.";
                        selectedConversationIsGroup = false;
                    }

                    selectedConversationPk = Convert.ToInt32(reader[0]);

                    result = reader[13].ToString() + "\r\n"   // Partner Name
                            + reader[0].ToString() + "\r\n"    // ?
                            + reader[1].ToString() + "\r\n"   // ?
                            + reader[2].ToString() + "\r\n"   // ?
                            + reader[3].ToString() + "\r\n"   // Contact ID (0 for group)
                            + reader[7].ToString() + "\r\n"   // Group Info - empty if contact

                            + reader[4].ToString() + "\r\n"   // Deleted
                            + reader[5].ToString() + "\r\n"   // Number of messages
                            + reader[6].ToString() + "\r\n"   // Number of unread messages

                            + reader[9].ToString() + "\r\n"   // Properties
                            + "\r\n"
                        //+ reader[10].ToString() + "\r\n"    // Last Message Date
                            + reader[11].ToString() + "\r\n"   // Contact Jabber ID
                            + reader[12].ToString() + "\r\n"   // Last Message Text
                            + reader[14].ToString() + "\r\n\r\n"        // Saved input
                            + getLastMessage.ZPUSHNAME + "\r\n"   // Last Message
                            + getLastMessage.ZISFROMME + "\r\n"   // Last Message
                            + getLastMessage.ZTEXT;   // Last Message
                }
                reader.Close();

                txtDetailDescription.Text = result;

            }
            catch (Exception ex)
            {
                MessageBox.Show("Error while opening database: " + ex.Message);

            }
        }
Ejemplo n.º 4
0
        public void InitializeMessages(int zchatsession, string connectionString, string searchString = "")
        {
            SQLiteConnection connection  = new SQLiteConnection(connectionString);
            string           queryString = "select z_pk from zwamessage where zchatsession = " + zchatsession.ToString() + " order by zmessagedate asc";

            if (searchString != "")
            {
                //search performed!

                // hopefully nobody tries anything funny here
                queryString = "select z_pk from zwamessage where ztext like \"" + searchString + "\" order by zmessagedate asc";
            }
            SQLiteCommand command = new SQLiteCommand(queryString, connection);

            lvMessageView.Items.Clear();

            try
            {
                connection.Open();
                SQLiteDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    WAMessage currentMessage = new WAMessage(Convert.ToInt32(reader[0]), connectionString);

                    WAGroupMember messageOwner = new WAGroupMember(currentMessage.ZGROUPMEMBER, connectionString);

                    ListViewItem currentListViewItem;

                    if (currentMessage.ZISFROMME == 1)
                    {
                        currentListViewItem = new ListViewItem("WhatsApp Owner");
                    }
                    else
                    {
                        string messageOwnerName = "";



                        // appending again somehow fixes the blank string problem
                        messageOwnerName += messageOwner.ZCONTACTNAME;

                        //if (messageOwnerName.Length == 0 && IsGroupMessage == false)
                        //{
                        //    //messageOwnerName = "Hello";
                        //}

                        //hackish but works
                        bool isNotOwner = true;
                        if (messageOwnerName.Length == 0)
                        {
                            messageOwnerName = this.Text;
                            isNotOwner       = true;
                        }
                        currentListViewItem = new ListViewItem(messageOwnerName);

                        //really wtf?
                        if (isNotOwner)
                        {
                            currentListViewItem.BackColor = Color.Wheat;
                        }
                    }


                    currentListViewItem.SubItems.Add(currentMessage.ZTEXT);
                    currentListViewItem.SubItems.Add(MiscHelper.HandleWeirdEpochAddTimezoneInformation(currentMessage.ZMESSAGEDATE));

                    string eventType = "";
                    if (currentMessage.Z_GROUPEVENTTYPE == 0)
                    {
                        eventType = "Message";
                    }
                    else if (currentMessage.Z_GROUPEVENTTYPE == 1)
                    {
                        eventType = "Group Creation";
                    }
                    else if (currentMessage.Z_GROUPEVENTTYPE == 2)
                    {
                        eventType = "Joined Group";
                    }
                    else if (currentMessage.Z_GROUPEVENTTYPE == 3)
                    {
                        eventType = "Left Group";
                    }
                    else
                    {
                        eventType = "Unknown (" + currentMessage.Z_GROUPEVENTTYPE.ToString() + ")";
                    }

                    currentListViewItem.SubItems.Add(eventType);

                    lvMessageView.Items.Add(currentListViewItem);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                // oh no
            }
        }