Beispiel #1
0
        //Receive message event handle
        private void ReceiveMessageHandler(ServiceEvent serviceEvent)
        {
            this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(() =>
            {
                try
                {
                    switch (serviceEvent._opcode)
                    {
                    case OptionCode.TMP_PRIVATE_NEED_ACK_REQUEST:
                    case OptionCode.TMP_PRIVATE_NO_NEED_ACK_REQUEST:
                    case OptionCode.TMP_PRIVATE_SHORT_DATA_NO_NEED_ACK_REQUEST:
                    case OptionCode.TMP_PRIVATE_SHORT_DATA_NEED_ACK_REQUEST:
                        //如果短消息不是发给调度台,则直接过滤此短消息
                        //if ((((int)serviceEvent._localIP) & 0x00FFFFFF).ToString() != lbDispatchStationID.Content.ToString())
                        if ((((uint)serviceEvent._localIP) & 0x00FFFFFF) != dispatchStationID)
                        {
                            return;
                        }
                        break;
                    }

                    TextMessageReceivedData receiveData = serviceEvent._eventData as TextMessageReceivedData;
                    if (receiveData == null)
                    {
                        return;
                    }

                    string revTime        = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    string messageContent = receiveData._content.ToString();
                    string sourceId;
                    string messageType;

                    //接收到组消息
                    if (serviceEvent._opcode == OptionCode.TMP_GROUP_NO_ACK_NEED || serviceEvent._opcode == OptionCode.TMP_GROUP_REQUEST)
                    {
                        sourceId    = (((int)serviceEvent._localIP) & 0x00FFFFFF).ToString();
                        messageType = "Group";
                    }
                    else
                    {
                        sourceId    = (((int)serviceEvent._remoteIP) & 0x00FFFFFF).ToString();
                        messageType = "Private";
                    }

                    //tbReceiveText.Text += revTime + "   " + messageType + "   " + sourceId + "\n"
                    //                        + "Content: " + messageContent + "\n";
                    lvReceiveLog.Items.Add(new ReceiveLog()
                    {
                        FromName = "20", //tbTargetID.Text,
                        //FromName = msg.Headers.Sender == null ? "" : msg.Headers.Sender.ToString(),
                        ReceivedDatetime = revTime,
                        MessageSubject   = sourceId, // TODO: what is this?
                        MessageBody      = messageContent == null ? "" : messageContent
                    });

                    //forward this message to HotSos by email
                    EmailEntity email_entity = new EmailEntity();
                    //email_entity.ToUserEmail = "*****@*****.**"; // (uint)int.Parse(tbTargetID.Text) + "@hyt.com";
                    email_entity.ToUserEmail   = string.IsNullOrEmpty(FromUserEmail) ?  "*****@*****.**" : FromUserEmail;
                    email_entity.EmailSubject  = "UTech Demo"; //1,2,3,4
                    email_entity.EmailBodyText = messageContent == null ? "" : messageContent;
                    //email_entity.EmailBodyHtml = "<html>test</html>";
                    //email_service.Send(email_entity);
                    email_service.SendMailAsync(email_entity);

                    //if (string.IsNullOrEmpty(FromUserEmail))
                    //{
                    //    email_entity.ToUserEmail = FromUserEmail;
                    //    email_service.SendMailAsync(email_entity);
                    //}
                }
                catch (Exception exception)
                {
                }
            }));
        }
Beispiel #2
0
        //Receive message event handle
        private void ReceiveMessageHandler(ServiceEvent serviceEvent)
        {
            this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(() =>
            {
                try
                {
                    switch (serviceEvent._opcode)
                    {
                    case OptionCode.TMP_PRIVATE_NEED_ACK_REQUEST:
                    case OptionCode.TMP_PRIVATE_NO_NEED_ACK_REQUEST:
                    case OptionCode.TMP_PRIVATE_SHORT_DATA_NO_NEED_ACK_REQUEST:
                    case OptionCode.TMP_PRIVATE_SHORT_DATA_NEED_ACK_REQUEST:
                        //如果短消息不是发给调度台,则直接过滤此短消息
                        //if ((((int)serviceEvent._localIP) & 0x00FFFFFF).ToString() != lbDispatchStationID.Content.ToString())
                        if ((((uint)serviceEvent._localIP) & 0x00FFFFFF) != dispatchStationID)
                        {
                            return;
                        }
                        break;
                    }

                    TextMessageReceivedData receiveData = serviceEvent._eventData as TextMessageReceivedData;
                    if (receiveData == null)
                    {
                        return;
                    }

                    string revTime        = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    string messageContent = receiveData._content.ToString();
                    string sourceId;
                    string messageType = string.Empty;

                    //接收到组消息
                    if (serviceEvent._opcode == OptionCode.TMP_GROUP_NO_ACK_NEED || serviceEvent._opcode == OptionCode.TMP_GROUP_REQUEST)
                    {
                        sourceId    = (((int)serviceEvent._localIP) & 0x00FFFFFF).ToString();
                        messageType = "Group";
                    }
                    else
                    {
                        sourceId    = (((int)serviceEvent._remoteIP) & 0x00FFFFFF).ToString();
                        messageType = "Private";
                    }

                    Person p = contactList.Find(x => x.TargetID.TrimEnd().Equals(sourceId.ToString()));
                    if (p == null)
                    {
                        return;
                    }

                    //tbReceiveText.Text += revTime + "   " + messageType + "   " + sourceId + "\n"
                    //                        + "Content: " + messageContent + "\n";
                    lvReceiveLog.Items.Add(new ReceiveLog()
                    {
                        FromName = sourceId, //tbTargetID.Text,
                        //FromName = msg.Headers.Sender == null ? "" : msg.Headers.Sender.ToString(),
                        ReceivedDatetime = revTime,
                        MessageSubject   = "RE: " + messageContent.Substring(0, messageContent.IndexOf(CRLF)).TrimEnd(),
                        MessageBody      = messageContent == null ? "" : messageContent.Substring(messageContent.IndexOf(CRLF) + 2),
                        Status           = "Success"
                    });

                    //forward this message to HotSos by email
                    EmailEntity email_entity         = new EmailEntity();
                    email_entity.FromUserEmail       = p.Email;
                    email_entity.FromUserDisplayName = p.FirstName + " " + p.LastName;
                    email_entity.ToUserEmail         = ConfigurationManager.AppSettings.Get("SenderEmail");
                    email_entity.EmailSubject        = "RE: " + messageContent.Substring(0, messageContent.IndexOf(CRLF)).TrimEnd() + CRLF; //1,2,3,4
                    email_entity.EmailBodyText       = messageContent == null ? "" : messageContent.Substring(messageContent.IndexOf(CRLF) + 2);
                    //email_entity.EmailBodyHtml = "<html>test</html>";
                    //email_service.Send(email_entity);
                    email_service.SendMailAsync(email_entity);


                    //if (string.IsNullOrEmpty(FromUserEmail))
                    //{
                    //    email_entity.ToUserEmail = FromUserEmail;
                    //    email_service.SendMailAsync(email_entity);
                    //}
                }
                catch (Exception exception)
                {
                }
            }));
        }