public void DeleteCategory(QQCategory category) { _categoryMap.TryRemove(category.Index, out category); }
public void AddCategory(QQCategory category) { _categoryMap[category.Index] = category; }
public void AddCategory(QQCategory category) { _categoryMap.Add(category.Index, category, AddChoice.Update); }
public void DeleteCategory(QQCategory category) { _categoryMap.Remove(category.Index); }
public override void OnHttpStatusOK(QQHttpResponse response) { var json = JObject.Parse(response.GetResponseString()); var str = JsonConvert.SerializeObject(json); var retcode = json["retcode"].ToObject <int>(); if (retcode == 0) { var store = Context.Store; // 处理好友列表 var results = json["result"].ToObject <JObject>(); // 获取JSON列表信息 var jsonCategories = results["categories"].ToObject <JArray>(); // 获取JSON好友基本信息列表 flag/uin/categories var jsonFriends = results["friends"].ToObject <JArray>(); // face/flag/nick/uin var jsonInfo = results["info"].ToObject <JArray>(); // uin/markname/ var jsonMarknames = results["marknames"].ToObject <JArray>(); // vip_level/u/is_vip var jsonVipinfo = results["vipinfo"].ToObject <JArray>(); // 默认好友列表 var c = new QQCategory() { Index = 0, Name = "我的好友", Sort = 0 }; store.AddCategory(c); // 初始化好友列表 foreach (var t in jsonCategories) { var jsonCategory = t.ToObject <JObject>(); var qqc = new QQCategory(); qqc.Index = jsonCategory["index"].ToObject <int>(); qqc.Name = jsonCategory["name"].ToString(); qqc.Sort = jsonCategory["sort"].ToObject <int>(); store.AddCategory(qqc); } // 处理好友基本信息列表 flag/uin/categories foreach (var t in jsonFriends) { var buddy = new QQBuddy(); var jsonFriend = t.ToObject <JObject>(); var uin = jsonFriend["uin"].ToObject <long>(); buddy.Uin = uin; buddy.Status = QQStatus.OFFLINE; buddy.ClientType = QQClientType.Unknown; // 添加到列表中 var category = jsonFriend["categories"].ToObject <int>(); var qqCategory = store.GetCategoryByIndex(category); buddy.Category = qqCategory; qqCategory.BuddyList.Add(buddy); // 记录引用 store.AddBuddy(buddy); } // face/flag/nick/uin foreach (var t in jsonInfo) { var info = t.ToObject <JObject>(); var uin = info["uin"].ToObject <long>(); var buddy = store.GetBuddyByUin(uin); buddy.Nickname = info["nick"].ToString(); } // uin/markname foreach (var t in jsonMarknames) { var jsonMarkname = t.ToObject <JObject>(); var uin = jsonMarkname["uin"].ToObject <long>(); var buddy = store.GetBuddyByUin(uin); if (buddy != null) { buddy.MarkName = jsonMarkname["markname"].ToString(); } } // vip_level/u/is_vip foreach (var t in jsonVipinfo) { var vipInfo = t.ToObject <JObject>(); var uin = vipInfo["u"].ToObject <long>(); var buddy = store.GetBuddyByUin(uin); buddy.VipLevel = vipInfo["vip_level"].ToObject <int>(); var isVip = vipInfo["is_vip"].ToObject <int>(); buddy.IsVip = isVip != 0; } NotifyActionEvent(QQActionEventType.EvtOK, store.GetCategoryList()); } else { // LOG.warn("unknown retcode: " + retcode); NotifyActionEvent(QQActionEventType.EvtError, new QQException(QQErrorCode.ErrorHttpStatus, "unknown retcode: " + retcode)); } }