Ejemplo n.º 1
0
        public void Test2()
        {
            //持久一个对象
            ReceiveMessageDataModel aMessage = new ReceiveMessageDataModel(-1, "1111", "hello", new DateTime(1999, 1, 1));

            _TheTarget.SaveReceiveMessage(aMessage);
            //加载出来并比较
            List <ReceiveMessageDataModel> theMessages = _TheTarget.GetReceiveMessageByStatus(false);

            Assert.AreEqual(1, theMessages.Count);
            ReceiveMessageDataModel theLoadedObject = theMessages[0];

            Assert.IsTrue(aMessage.Equals(theLoadedObject));
            //修改该对象
            theLoadedObject.Content        = "xxx";
            theLoadedObject.BoradCasted    = true;
            theLoadedObject.IsCleanMessage = true;
            theLoadedObject.TheNumber      = "ssdfasf";
            _TheTarget.SaveReceiveMessage(theLoadedObject);
            //查询
            List <ReceiveMessageDataModel> theMessagesSecond = _TheTarget.GetReceiveMessageByStatus(false);

            Assert.AreEqual(0, theMessagesSecond.Count);
            List <ReceiveMessageDataModel> theMessagesThird = _TheTarget.GetAllReceiveMessages();

            Assert.AreEqual(1, theMessagesThird.Count);
            Assert.IsTrue(theLoadedObject.Equals(theMessagesThird[0]));
        }
        private void ReceiveMessageUpdate(ReceiveMessageDataModel message)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_PKID, SqlDbType.Int).Value = message.Pkid;
            TheNeedParametersForReceiveMessageMessage(cmd, message);
            SqlHelper.ExecuteNonQuery("ReceiveMessageUpdate", cmd);
        }
 private void TheNeedParametersForReceiveMessageMessage(SqlCommand cmd, ReceiveMessageDataModel message)
 {
     cmd.Parameters.Add(_BoradCasted, SqlDbType.Int).Value        = message.BoradCasted;
     cmd.Parameters.Add(_Id, SqlDbType.Int).Value                 = message.Id;
     cmd.Parameters.Add(_TheNumber, SqlDbType.NVarChar, 50).Value = message.TheNumber;
     cmd.Parameters.Add(_Content, SqlDbType.NVarChar, 1000).Value = message.Content;
     cmd.Parameters.Add(_ReceivedTime, SqlDbType.DateTime).Value  = message.ReceivedTime < new DateTime(1900, 1, 1) ? new DateTime(1900, 1, 1) : message.ReceivedTime;
     cmd.Parameters.Add(_IsCleanMessage, SqlDbType.Int).Value     = message.IsCleanMessage;
 }
 public void SaveReceiveMessage(ReceiveMessageDataModel aMessage)
 {
     if (!aMessage.IsObjectStatus)
     {
         ReceiveMessageInsert(aMessage);
     }
     else
     {
         ReceiveMessageUpdate(aMessage);
     }
 }
        private void ReceiveMessageInsert(ReceiveMessageDataModel message)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction = ParameterDirection.Output;
            TheNeedParametersForReceiveMessageMessage(cmd, message);
            int pkid;

            SqlHelper.ExecuteNonQueryReturnPKID("ReceiveMessageInsert", cmd, out pkid);
            message.Pkid = pkid;
        }
        public List <ReceiveMessageDataModel> GetAllReceiveMessages()
        {
            List <ReceiveMessageDataModel> retVal = new List <ReceiveMessageDataModel>();
            SqlCommand cmd = new SqlCommand();

            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetAllReceiveMessage", cmd))
            {
                while (sdr.Read())
                {
                    ReceiveMessageDataModel aMessage = new ReceiveMessageDataModel(int.Parse(sdr[_DBId].ToString()), sdr[_DBTheNumber].ToString(), sdr[_DBContent].ToString(), DateTime.Parse(sdr[_DBReceivedTime].ToString()));
                    aMessage.IsCleanMessage = int.Parse(sdr[_DBIsCleanMessage].ToString()) == 0 ? false : true;
                    aMessage.BoradCasted    = int.Parse(sdr[_DBBoradCasted].ToString()) == 0 ? false : true;
                    aMessage.IsObjectStatus = true;
                    aMessage.Pkid           = int.Parse(sdr[_DBPKID].ToString());
                    retVal.Add(aMessage);
                }
            }
            return(retVal);
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="message"></param>
 public ReceivedMessageFactory(ReceiveMessageDataModel message)
 {
     _Message = message;
     _Account = _AccountBll.GetAccountByMobileNum(message.TheNumber);
 }
Ejemplo n.º 8
0
 /// <summary>
 /// 收到提交出差消息后,处理该消息
 /// </summary>
 public void OutCityMessageExcute(Account employee, ReceiveMessageDataModel message)
 {
     new OutCityApplicationMessage(employee, message).Excute();
 }
Ejemplo n.º 9
0
 private void DeleteMessageFailedHandler(ReceiveMessageDataModel aMessage)
 {
     WriteLine(string.Format("删除Sim卡中的短信失败,短信在机器中的编号为{0},收到的时间为{1},内容是{2}", aMessage.Id, aMessage.ReceivedTime, aMessage.Content));
 }
Ejemplo n.º 10
0
        public void ReceiveAllMessage()
        {
            //_TheSerialPort.ReadExisting();
            //获取所有Sim卡中的短信
            _TheSerialPort.SendString("AT+CMGL=4\r");
            string theResponse;

            try
            {
                theResponse = _TheSerialPort.ReadTo("OK", 20000);
            }
            catch (TimeoutException)
            {
                ReceivedFailedHandler();
                return;
            }
            //一条一条解析短信
            Regex           readReg   = new Regex("(?:CMGL: (?<index>\\d+),\\d+,,\\d+\r\n(?<sms>\\S+)\r\n)");
            MatchCollection allMaches = readReg.Matches(theResponse);

            int successCount = 0;

            foreach (Match m in allMaches)
            {
                int      id;
                string   senderNumber;
                string   content;
                DateTime senderTime;
                if (!int.TryParse(m.Groups["index"].Value, out id))
                {
                    continue;
                }
                if (!PduDecoding.DecodingMsg(m.Groups["sms"].Value, out senderNumber, out content, out senderTime))
                {
                    DecodingSmsFailHandler(m.Groups["index"].Value, m.Groups["sms"].Value);
                    continue;
                }
                ReceiveMessageDataModel theMessage = new ReceiveMessageDataModel(id, senderNumber, content, senderTime);
                successCount++;
                //删除Sim卡里面的信息
                //AT+CMGL="ALL"
                _TheSerialPort.SendString("AT+CMGD=" + theMessage.Id + "\r");
                try
                {
                    _TheSerialPort.ReadTo("OK", 10000);
                    theMessage.IsCleanMessage = true;
                }
                catch (TimeoutException)
                {
                    DeleteMessageFailedHandler(theMessage);
                }
                finally
                {
                    theMessage.MoveNumber86();
                    ObjectSource.GetMessageBox.EnqueueReceiveMessage(theMessage);
                }
            }
            //若是收到信息,引发异步事件
            if (successCount > 0 && ReceivedMessage != null)
            {
                ReceivedMessage.BeginInvoke(this, new EventArgs(), null, null);
            }
        }
Ejemplo n.º 11
0
 public void ReceiveMessage(ReceiveMessageDataModel message)
 {
     new ReceivedMessageFactory(message).Excute();
 }
Ejemplo n.º 12
0
 protected RequestMessageBase(Account account, ReceiveMessageDataModel message)
 {
     _Account = account;
     _Message = message;
 }
Ejemplo n.º 13
0
 /// <summary>
 ///
 /// </summary>
 public LeaveRequestMessage(Account employee, ReceiveMessageDataModel message)
     : base(employee, message)
 {
 }
Ejemplo n.º 14
0
 /// <summary>
 ///
 /// </summary>
 public OverWorkMessage(Account account, ReceiveMessageDataModel message)
     : base(account, message)
 {
 }
Ejemplo n.º 15
0
 /// <summary>
 /// 收到提交加班消息后,处理该消息
 /// </summary>
 public void OverWorkMessageExcute(Account employee, ReceiveMessageDataModel message)
 {
     new OverWorkMessage(employee, message).Excute();
 }
Ejemplo n.º 16
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="employee"></param>
 /// <param name="message"></param>
 public OutCityApplicationMessage(Account employee, ReceiveMessageDataModel message)
     : base(employee, message)
 {
 }
Ejemplo n.º 17
0
 public void EnqueueReceiveMessage(ReceiveMessageDataModel aMessage)
 {
     _TheDal.SaveReceiveMessage(aMessage);
 }
Ejemplo n.º 18
0
 /// <summary>
 /// 收到提交请假消息后,处理该消息
 /// </summary>
 public void LeaveRequestMessageExcute(Account employee, ReceiveMessageDataModel message)
 {
     new LeaveRequestMessage(employee, message).Excute();
 }