private async void OnUsualMessage(Xmpp.Im.Message xmppXmppMessage) { var receivedMessage = new GeneralDataModel.Models.Message(); FillUsualMessageFields(xmppXmppMessage, receivedMessage); FillUsualMessageExtraParamsFields(xmppXmppMessage.ExtraParameters, receivedMessage); FillAttachments(xmppXmppMessage.ExtraParameters, receivedMessage); await LoggerHolder.Log(LogLevel.Debug, "XMPP: OnMessageReceived ====> " + " From: " + receivedMessage.SenderId + " To: " + receivedMessage.RecipientId + " Body: " + receivedMessage.MessageText + " DateSent " + receivedMessage.DateSent + " FullXmlMessage: " + xmppXmppMessage.DataString); receivedMessage.ExtraParameters = xmppXmppMessage.ExtraParameters; var handler = MessageReceived; if (handler != null) { var messageEventArgs = new MessageEventArgs(xmppXmppMessage.From, receivedMessage, xmppXmppMessage.Type); handler.Invoke(this, messageEventArgs); } }
private async void OnSystemMessage(Xmpp.Im.Message xmppXmppMessage) { var notificationType = GetNotificationType(xmppXmppMessage.ExtraParameters); SystemMessage systemMessage = null; if (notificationType == NotificationTypes.GroupCreate || notificationType == NotificationTypes.GroupUpdate) { systemMessage = new GroupInfoMessage(); FillSystemMessageFields(xmppXmppMessage, systemMessage); FillGroupInfoMessageFields(xmppXmppMessage.ExtraParameters, (GroupInfoMessage)systemMessage); } else { systemMessage = new SystemMessage(); FillSystemMessageFields(xmppXmppMessage, systemMessage); } systemMessage.ExtraParameters = xmppXmppMessage.ExtraParameters; await LoggerHolder.Log(LogLevel.Debug, "XMPP: OnMessageReceived ====> " + " From: " + systemMessage.SenderId + " Body: " + systemMessage.MessageText + " FullXmlMessage: " + xmppXmppMessage.DataString); var handler = SystemMessageReceived; if (handler != null) { var systemMessageEventArgs = new SystemMessageEventArgs(new Jid(xmppXmppMessage.From.ToString()), systemMessage, xmppXmppMessage.Type); handler.Invoke(this, systemMessageEventArgs); } }
private void FillSystemMessageFields(Xmpp.Im.Message xmppXmppMessage, SystemMessage result) { string from = xmppXmppMessage.From.ToString(); string to = xmppXmppMessage.To.ToString(); result.From = from; result.To = to; result.MessageText = xmppXmppMessage.Body; result.SenderId = xmppXmppMessage.Type == Xmpp.Im.MessageType.Groupchat ? GetQbUserIdFromGroupJid(from) : GetQbUserIdFromJid(from); }
private void FillUsualMessageFields(Xmpp.Im.Message xmppXmppMessage, GeneralDataModel.Models.Message result) { string from = xmppXmppMessage.From.ToString(); string to = xmppXmppMessage.To.ToString(); result.From = from; result.To = to; result.MessageText = xmppXmppMessage.Body; result.Id = xmppXmppMessage.Id; result.RecipientId = xmppXmppMessage.Type == Xmpp.Im.MessageType.Groupchat ? GetQbUserIdFromGroupJid(to) : GetQbUserIdFromJid(to); result.SenderId = xmppXmppMessage.Type == Xmpp.Im.MessageType.Groupchat ? GetQbUserIdFromGroupJid(from) : GetQbUserIdFromJid(from); }
private bool CheckIsSystemMessage(Xmpp.Im.Message xmppXmppMessage) { if (xmppXmppMessage.Type != Xmpp.Im.MessageType.Headline) { return(false); } if (xmppXmppMessage.ExtraParameters != null) { var moduleIdentifier = xmppXmppMessage.ExtraParameters.Element(ExtraParams.GetXNameFor(ExtraParamsList.moduleIdentifier)); if (moduleIdentifier == null || moduleIdentifier.Value != SystemMessage.SystemMessageModuleIdentifier) { return(false); } } return(true); }