Beispiel #1
0
        public IEnumerable <ChatItem> getChats()
        {
            var list = new List <ChatItem>();

            using (var sqlite_command = sqlite_connection.CreateCommand())
            {
                sqlite_command.CommandText = "SELECT * FROM ZWACHATSESSION;";
                SQLiteDataReader sqlite_datareader = sqlite_command.ExecuteReader();
                Chats = new List <IOSChatItem>();
                while (sqlite_datareader.Read())
                {
                    var item = new IOSChatItem();

                    var values = sqlite_datareader.GetValues();

                    item.Z_PK = int.Parse("0" + values["Z_PK"].ToString());
                    //item.Z_ENT = int.Parse("0" + values["Z_ENT"].ToString());
                    //item.Z_OPT = int.Parse("0" + values["Z_OPT"].ToString());
                    //item.ZCONTACTABID = int.Parse("0" + values["ZCONTACTABID"].ToString());
                    //item.ZFLAGS = int.Parse("0" + values["ZFLAGS"].ToString());
                    //item.ZMESSAGECOUNTER = int.Parse("0" + values["ZMESSAGECOUNTER"].ToString());
                    //item.ZUNREADCOUNT = int.Parse("0" + values["ZUNREADCOUNT"].ToString());
                    //item.ZGROUPINFO = int.Parse("0" + values["ZGROUPINFO"].ToString());
                    //item.ZLASTMESSAGE = int.Parse("0" + values["ZLASTMESSAGE"].ToString());
                    //item.ZPROPERTIES = int.Parse("0" + values["ZPROPERTIES"].ToString());
                    item.ZLASTMESSAGEDATE = TimeStampToDateTime(double.Parse("0" + values["ZLASTMESSAGEDATE"], CultureInfo.InvariantCulture));
                    item.ZCONTACTJID      = values["ZCONTACTJID"].ToString();
                    //item.ZLASTMESSAGETEXT = values["ZLASTMESSAGETEXT"].ToString();
                    //item.ZPARTNERNAME = values["Z_PK"].ToString();
                    //item.ZSAVEDINPUT = values["ZSAVEDINPUT"].ToString();

                    Chats.Add(item);

                    list.Add(new ChatItem()
                    {
                        id    = int.Parse("0" + values["Z_PK"].ToString()),
                        name  = values["ZCONTACTJID"].ToString(),
                        descr = values["ZPARTNERNAME"].ToString(),
                    });
                }
            }

            return(list);
        }
Beispiel #2
0
        public IEnumerable <ChatItem> getChats()
        {
            var list = new List <ChatItem>();

            if (!this.savedDB)
            {
                var trans = sqlite_connect.BeginTransaction();
                try
                {
                    using (var sqlite_command = sqlite_connect.CreateCommand())
                    {
                        sqlite_command.CommandText = "DROP TABLE IF EXISTS ZTMPSESSIONVIEW";
                        sqlite_command.ExecuteNonQuery();
                        sqlite_command.CommandText = "CREATE TABLE ZTMPSESSIONVIEW AS SELECT Z_PK,ZCONTACTJID,ZPARTNERNAME,ZLASTMESSAGEDATE FROM chatDB.ZWACHATSESSION WHERE ZCONTACTJID NOT LIKE '%@status' AND ZHIDDEN = 0;";
                        sqlite_command.ExecuteNonQuery();
                    }
                    trans.Commit();
                }
                catch (Exception)
                {
                    trans.Rollback();
                }
            }

            using (var sqlite_command = sqlite_connect.CreateCommand())
            {
                sqlite_command.CommandText = "SELECT * FROM ZTMPSESSIONVIEW";

                SQLiteDataReader sqlite_datareader = sqlite_command.ExecuteReader();
                Chats = new List <IOSChatItem>();
                while (sqlite_datareader.Read())
                {
                    var item = new IOSChatItem();

                    var values = sqlite_datareader.GetValues();

                    item.Z_PK             = int.Parse("0" + values["Z_PK"].ToString());
                    item.ZLASTMESSAGEDATE = TimeStampToDateTime(double.Parse("0" + values["ZLASTMESSAGEDATE"], CultureInfo.InvariantCulture));
                    item.ZCONTACTJID      = values["ZCONTACTJID"].ToString();

                    Chats.Add(item);

                    list.Add(new ChatItem()
                    {
                        id          = int.Parse("0" + values["Z_PK"].ToString()),
                        name        = values["ZCONTACTJID"].ToString(),
                        descr       = values["ZPARTNERNAME"].ToString(),
                        lastmessage = TimeStampToDateTime(double.Parse("0" + values["ZLASTMESSAGEDATE"], CultureInfo.InvariantCulture))
                    });
                }
            }
            if (!string.IsNullOrWhiteSpace(searchText))
            {
                List <int> ids = new List <int>();
                foreach (KeyValuePair <int, List <IOSMessageItem> > entry in Msg)
                {
                    if (entry.Value.Where(o => o.message.ToLower().Contains(searchText.ToLower())).ToList().Count > 0)
                    {
                        ids.Add(entry.Key);
                    }
                }
                return(list.Where(o => ids.Contains(o.id)).OrderByDescending(o => o.lastmessage).ToList());
            }
            return(list.OrderByDescending(o => o.lastmessage));
        }