//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) { } })); }
//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) { } })); }