예제 #1
0
 public bool SelectUserInfors(string[] ids, out UserInfoPackage[] infos)
 {
     infos = null;
     if (null != ids && 0 < ids.Length)
     {
         string sql = "select * from " +
                      DBStaticData.DataBaseUserTableName +
                      " where " +
                      DBStaticData.DataBaseUserTableIDField +
                      " in ('" +
                      string.Join("', '", ids) +
                      "')";
         if (ExecuteNonDataSet(sql.ToString(), out DataSet set))
         {
             if (0 < set.Tables[0].Rows.Count)
             {
                 infos = new UserInfoPackage[set.Tables[0].Rows.Count];
                 for (int i = 0; i < infos.Length; ++i)
                 {
                     infos[i] = new UserInfoPackage
                     {
                         ID       = set.Tables[0].Rows[i].ItemArray[0] as string,
                         Name     = set.Tables[0].Rows[i].ItemArray[3] as string,
                         Email    = set.Tables[0].Rows[i].ItemArray[4] as string,
                         Phone    = set.Tables[0].Rows[i].ItemArray[5] as string,
                         Describe = set.Tables[0].Rows[i].ItemArray[6] as string,
                         Photo    = (int)set.Tables[0].Rows[i].ItemArray[7],
                     };
                 }
                 return(true);
             }
         }
     }
     return(false);
 }
예제 #2
0
        public bool SelectUserInfor(string id, out UserInfoPackage info)
        {
            info = null;
            string sql = string.Format
                         (
                "select * from {0} where {1} = '{2}'",
                DBStaticData.DataBaseUserTableName,
                DBStaticData.DataBaseUserTableIDField,
                id
                         );

            if (ExecuteNonDataSet(sql, out DataSet set))
            {
                if (0 < set.Tables[0].Rows.Count)
                {
                    info = new UserInfoPackage
                    {
                        ID       = set.Tables[0].Rows[0].ItemArray[0] as string,
                        Name     = set.Tables[0].Rows[0].ItemArray[3] as string,
                        Email    = set.Tables[0].Rows[0].ItemArray[4] as string,
                        Phone    = set.Tables[0].Rows[0].ItemArray[5] as string,
                        Describe = set.Tables[0].Rows[0].ItemArray[6] as string,
                        Photo    = (int)set.Tables[0].Rows[0].ItemArray[7],
                    };
                    return(true);
                }
            }
            return(false);
        }
예제 #3
0
        private void OnAppliesRequest(Datagram datagram)
        {
            FriendGroupApplyRequest request = datagram.UnSerialData <FriendGroupApplyRequest>();

            KXTUserAppliesPackage[] applies = UserAppliesReader.ReadApplies(request.UserID);

            List <AppliesResponse.ApplyPackage> list = new List <AppliesResponse.ApplyPackage>();

            foreach (KXTUserAppliesPackage i in applies)
            {
                UserInfoPackage user = new UserInfoPackage();
                SQLDB.SelectUserInfor(i.ApplierID, out user);

                list.Add(new AppliesResponse.ApplyPackage
                {
                    TargetType      = i.TargetType,
                    TargetID        = i.GroupID,
                    ApplierID       = i.ApplierID,
                    ApplierName     = user.Name,
                    ApplierDescribe = user.Describe,
                    ApplierPicture  = (byte)user.Photo,
                    ApplyTime       = i.ApplyTime,
                    Message         = i.Message
                });
            }

            AppliesResponse response = new AppliesResponse
            {
                Applies = list.ToArray()
            };

            datagram.DataType    = DatagramType.Client;
            datagram.MessageType = LoginMessageType.AppliesResponse;
            datagram.Datas       = response.ToByteArray();

            if (!Send(datagram.ToByteArray()))
            {
                Notify(IKXTServer.LogLevel.Error, "数据发送异常");
                Close();
            }
        }
예제 #4
0
        public bool SearchFriends(string search, out UserInfoPackage[] infos)
        {
            infos = null;
            string sql = string.Format
                         (
                "select * from {0} where {2} like '%{1}%' union " +
                "select * from {0} where {3} like '%{1}%' union " +
                "select * from {0} where {4} like '%{1}%' union " +
                "select * from {0} where {5} like '%{1}%'",
                DBStaticData.DataBaseUserTableName,
                search,
                DBStaticData.DataBaseUserTableIDField,
                DBStaticData.DataBaseUserTableNameField,
                DBStaticData.DataBaseUserTableEmailField,
                DBStaticData.DataBaseUserTablePhoneField
                         );

            if (ExecuteNonDataSet(sql.ToString(), out DataSet set))
            {
                if (0 < set.Tables[0].Rows.Count)
                {
                    infos = new UserInfoPackage[set.Tables[0].Rows.Count];
                    for (int i = 0; i < infos.Length; ++i)
                    {
                        infos[i] = new UserInfoPackage
                        {
                            ID       = set.Tables[0].Rows[i].ItemArray[0] as string,
                            Name     = set.Tables[0].Rows[i].ItemArray[3] as string,
                            Email    = set.Tables[0].Rows[i].ItemArray[4] as string,
                            Phone    = set.Tables[0].Rows[i].ItemArray[5] as string,
                            Describe = set.Tables[0].Rows[i].ItemArray[6] as string,
                            Photo    = (int)set.Tables[0].Rows[i].ItemArray[7],
                        };
                    }
                    return(true);
                }
            }
            return(false);
        }