private NotificationTypes GetNotificationType(XElement extraParams) { var notificationType = extraParams.Element(ExtraParams.GetXNameFor(ExtraParamsList.notification_type)); if (notificationType != null) { int intValue; if (int.TryParse(notificationType.Value, out intValue)) { if (Enum.IsDefined(typeof(NotificationTypes), intValue)) { return((NotificationTypes)intValue); } } } return(default(NotificationTypes)); }
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); }
private void FillUsualMessageExtraParamsFields(XElement extraParams, GeneralDataModel.Models.Message result) { if (extraParams != null) { result.ChatDialogId = GetExtraParam(extraParams, ExtraParamsList.dialog_id); var dateSent = extraParams.Element(ExtraParams.GetXNameFor(ExtraParamsList.date_sent)); if (dateSent != null) { long longValue; if (long.TryParse(dateSent.Value, out longValue)) { result.DateSent = longValue; } } var stringIntListConverter = new StringIntListConverter(); result.NotificationType = GetNotificationType(extraParams); result.RoomPhoto = GetExtraParam(extraParams, ExtraParamsList.room_photo); result.RoomName = GetExtraParam(extraParams, ExtraParamsList.room_name); result.CurrentOccupantsIds = stringIntListConverter.ConvertToIntList(GetExtraParam(extraParams, ExtraParamsList.current_occupant_ids)); result.AddedOccupantsIds = stringIntListConverter.ConvertToIntList(GetExtraParam(extraParams, ExtraParamsList.added_occupant_ids)); result.DeletedOccupantsIds = stringIntListConverter.ConvertToIntList(GetExtraParam(extraParams, ExtraParamsList.deleted_occupant_ids)); result.ExtraParameters = extraParams; double roomUpdateDate; if (Double.TryParse(GetExtraParam(extraParams, ExtraParamsList.room_updated_date), out roomUpdateDate)) { result.RoomUpdateDate = roomUpdateDate; } var deletedId = GetExtraParam(extraParams, ExtraParamsList.deleted_id); if (deletedId != null) { int deletedIdInt; if (int.TryParse(deletedId, out deletedIdInt)) { result.DeletedId = deletedIdInt; } } } }
private void FillAttachments(XElement extraParams, GeneralDataModel.Models.Message result) { if (extraParams != null) { var attachmentParam = extraParams.Element(ExtraParams.GetXNameFor(ExtraParamsList.attachment)); if (attachmentParam != null) { var attachemnt = new Attachment { Name = GetAttributeValue(attachmentParam, XName.Get("name")), Id = GetAttributeValue(attachmentParam, XName.Get("id")), Type = GetAttributeValue(attachmentParam, XName.Get("type")), Url = GetAttributeValue(attachmentParam, XName.Get("url")) }; result.Attachments = new Attachment[] { attachemnt }; } } }
private string GetExtraParam(XElement extraParams, ExtraParamsList neededExtraParam) { var extraParam = extraParams.Element(ExtraParams.GetXNameFor(neededExtraParam)); return(extraParam?.Value); }