Beispiel #1
0
        /// <summary>
        /// 更新好友列表,默认超过10小时需要刷新
        /// </summary>
        /// <returns></returns>
        public static async Task Refresh()
        {
            if (!NeedRefresh())
            {
                return;
            }

            // 暂时取所有,后续增加好友功能
            var tbl = await new UnaryRpc(
                "cm",
                "Da.Query",
                "select id,name,phone,sex,(case photo when '' then 'photo/profilephoto.jpg' else photo end) as photo, mtime from cm_user"
                ).Call <Table <ChatMember> >();

            // 将新列表缓存到本地库
            AtState.Exec("delete from ChatMember");
            if (tbl != null && tbl.Count > 0)
            {
                foreach (var r in tbl)
                {
                    r.IsAdded = true;
                }
                await AtState.BatchSave(tbl, false);
            }

            // 记录刷新时间
            AtState.SaveCookie(_refreshKey, Kit.Now.ToString());
        }