public bool AddQQFriends(FriendViewModel model) { var t = DateTime.Now; var res = m_MainDbContext.QQFriendsSet.Where(e => !e.IsD && e.Owner == model.Owner && e.QQNum == model.Qq) .FirstOrDefault(); if (res != null) { res.Nick = model.Nick; res.UpdateTime = t; m_MainDbContext.QQFriendsSet.AddOrUpdate(res); } else { var target = new QQFriend() { CreateTime = t, UpdateTime = t, IsD = false, Nick = model.Nick, Owner = model.Owner, QQNum = model.Qq }; m_MainDbContext.QQFriendsSet.Add(target); } return(m_MainDbContext.SaveChanges() > 0); }
internal void ProcessLoginGetListReply(LoginGetListReplyPacket loginGetListReplyPacket, LoginGetListPacket loginGetListPacket) { QQEventArgs <LoginGetListReplyPacket, LoginGetListPacket> e = new QQEventArgs <LoginGetListReplyPacket, LoginGetListPacket>(QQClient, loginGetListReplyPacket, loginGetListPacket); foreach (QQ.Entities.QQBasicInfo qq in loginGetListReplyPacket.QQList) { if (!QQClient.QQUser.QQList.ContainsKey(qq.QQ)) { QQClient.QQUser.QQList.Add(qq.QQ, qq); } } StringBuilder sb = new StringBuilder(); sb.AppendLine("本次得到QQ " + loginGetListReplyPacket.QQList.Count + " 个。"); #if DEBUG foreach (QQ.Entities.QQBasicInfo qq in loginGetListReplyPacket.QQList) { sb.AppendLine(string.Format("\t\tQQ:{0} type:{1} group: {2} ", qq.QQ, qq.Type, qq.GroupId)); } #endif QQClient.LogManager.Log(sb.ToString()); //应该将QQ好友,QQ群存入存入QQuser对象 if (!e.InPacket.Finished)//好友没有下载完,继续下载 { //LoginGetList(e.InPacket.NextPos); LoginGetList(++lisPackets); } else //好友下载完毕 触发事件 { QQClient.LogManager.Log("获取全部好友完成!"); //分到各自的列表组 foreach (QQBasicInfo qq in QQClient.QQUser.QQList.Values) { switch (qq.Type) { case QQType.Cluster: ClusterInfo ClusterInfo = new ClusterInfo(); ClusterInfo.QQBasicInfo = qq; QQClient.QQUser.ClusterList.Add(qq.QQ, ClusterInfo); break; case QQType.QQ: QQFriend QQFriend = new QQFriend(); QQFriend.QQBasicInfo = qq; QQClient.QQUser.Friends.Add(qq.QQ, QQFriend); break; default: QQClient.LogManager.Log("unknown QQ.Type: 0x" + qq.Type.ToString("X") + " qq=" + qq.QQ.ToString() + " gid=0x" + qq.GroupId.ToString("X2")); break; } } OutPacket outPacket = new LoginSendInfoPacket(this.QQClient); QQClient.PacketManager.SendPacketAnyway(outPacket, QQPort.Main.Name); } }
/// <summary> /// 添加集方法 /// <para>Set Insert Function</para> /// </summary> /// <param name="n">项目</param> /// <returns></returns> public bool Add(QQFriend n) { if (q.Exists((QQFriend k) => k.FriendUin == n.FriendUin)) { return(false); } else { q.Add(n); return(true); } }
public QQFriend GetOrAddFriendByUin(long uin) { var f = FriendDic.GetOrDefault(uin); if (f == null) { f = new QQFriend() { Uin = uin }; AddFriend(f); } return(f); }
protected override void ParseBody(ByteBuffer buf) { // 当前好友列表位置 Position = buf.GetUShort(); Finished = Position == 0xFFFF; // 只要还有数据就继续读取下一个friend结构 Friends = new List <QQFriend>(); while (buf.HasRemaining()) { QQFriend friend = new QQFriend(); friend.Read(buf); Friends.Add(friend); } }
/// <summary> /// 处理得到群成员信息的回复包 /// 2010/2/22 Veonax 修改 /// <remark>abu 2008-02-22 </remark> /// </summary> /// <param name="buf">The buf.</param> private void ParseGetMemberInfoReply(ByteBuffer buf) { if (ReplyCode == ReplyCode.OK) { ClusterId = buf.GetUInt(); // 成员信息 MemberInfos = new List <QQFriend>(); while (buf.HasRemaining()) { QQFriend friend = new QQFriend(); friend.ReadFromCluster(buf); // 从群成员信息GetClusterMemberInfo包中读取相关信息 MemberInfos.Add(friend); } } }
public void AddFriend(QQFriend friend) { if (CategoryDic.ContainsKey(friend.CategoryIndex)) { CategoryDic[friend.CategoryIndex].AddFriend(friend); } else { AddCategory(new Category() { Index = friend.CategoryIndex }); AddFriend(friend); } FriendDic[friend.Uin] = friend; }
protected override void ParseBody(ByteBuffer buf) { #if DEBUG Client.LogManager.Log(ToString() + " " + Utils.Util.ToHex(buf.ToByteArray())); #endif buf.Position += 10; // 当前好友列表位置 Position = buf.GetUShort(); Finished = Position == 0xFFFF; buf.Position += 5; // 只要还有数据就继续读取下一个friend结构 Friends = new List <QQFriend>(); while (buf.Position + 5 < buf.Length) { int qq = buf.GetInt(); QQFriend friend = Client.QQUser.Friends.Get(qq); if (friend == null) { friend = Client.QQUser.Friends.Add(qq); } friend.Read(buf); Friends.Add(friend); } }
static public void friend_getlist() { try { String URL = Config.ROOT_URL + "friend_getlist"; PostData nvc = new PostData(); Func.putPassWord(nvc); //nvc.Add("order", "addtime"); //nvc.Add("desc", "DESC"); nvc.Add("start", "0"); nvc.Add("count", "0"); nvc.Add("tag", "qq"); nvc.Add("tagval", "251197161"); if (nvc != null) { string sttuas = Func.HttpPostData(URL, 10000, nvc); if (sttuas.Length > 10) { MyJson.JsonNode_Array jsons = MyJson.Parse(sttuas) as MyJson.JsonNode_Array; for (int i = 0; i < jsons.GetListCount(); i++) { MyJson.JsonNode_Object json = jsons.GetArrayItem(i) as MyJson.JsonNode_Object; QQFriend info = new QQFriend(); info.qq = json["qq"].AsString(); info.qqfri = json["qqfri"].AsString(); info.addtime = Func.MyUrlDeCode(json["addtime"].AsString()); info.state = Func.MyUrlDeCode(json["state"].AsString()); lsQQFriend.Add(info); } } } } catch (Exception) { } }
public GetFriendLongNickAction(IQQContext context, QQFriend friend, ActionEventListener listener = null) : base(context, listener) { _friend = friend; }
/// <summary> /// <remark>abu 2008-03-11 </remark> /// </summary> /// <param name="basicInfo">The basic info.</param> public FriendInfo(QQFriend basicInfo) { this.BasicInfo = basicInfo; }
public void AddFriend(QQFriend friend) { Friends[friend.Uin] = friend; }