예제 #1
0
        public IEnumerable <IcqMessage> GetRange(IcqAccount account, DateTime from, DateTime to)
        {
            var result = new List <IcqMessage>();

            try
            {
                using (var conn = new SqlConnection(_cnString))
                {
                    using (var cmd = new SqlCommand("[dbo].[ICQ_HISTORY_GET_RANGE]", conn))
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.AddWithValue("@uin", account.Uin);
                        cmd.Parameters.AddWithValue("@from", from);
                        cmd.Parameters.AddWithValue("@to", to);

                        conn.Open();

                        using (var dr = cmd.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                var msg = new IcqMessage();
                                msg.Id         = dr.GetInt32(dr.GetOrdinal("MESSAGE_ID"));
                                msg.ContactUin = dr.GetInt32(dr.GetOrdinal("CONTACT_UIN"));
                                msg.IsMy       = dr.GetBoolean(dr.GetOrdinal("IS_MY"));
                                msg.DateTime   = dr.GetDateTime(dr.GetOrdinal("DATE"));
                                msg.Text       = dr.GetString(dr.GetOrdinal("TEXT"));

                                result.Add(msg);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            return(result);
        }
예제 #2
0
        public IcqMessage GetLatest(IcqAccount account)
        {
            IcqMessage result = null;

            try
            {
                using (var conn = new SqlConnection(_cnString))
                {
                    using (var cmd = new SqlCommand("[dbo].[ICQ_HISTORY_GET_LATEST]", conn))
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.AddWithValue("@uin", account.Uin);

                        conn.Open();

                        using (var dr = cmd.ExecuteReader())
                        {
                            if (dr.Read())
                            {
                                result            = new IcqMessage();
                                result.Id         = dr.GetInt32(dr.GetOrdinal("MESSAGE_ID"));
                                result.ContactUin = dr.GetInt32(dr.GetOrdinal("CONTACT_UIN"));
                                result.IsMy       = dr.GetBoolean(dr.GetOrdinal("IS_MY"));
                                result.DateTime   = dr.GetDateTime(dr.GetOrdinal("DATE"));
                                result.Text       = dr.GetString(dr.GetOrdinal("TEXT"));
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            return(result);
        }