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