コード例 #1
0
        /// <summary>
        /// Sends a Message to other user.
        /// </summary>
        /// <param name="message">Message text</param>
        /// <returns>Is operation successful</returns>
        public void SendMessage(string message)
        {
            var extraParams = new ExtraParams();

            extraParams.AddNew(ExtraParamsList.save_to_history, "1");
            extraParams.AddNew(ExtraParamsList.dialog_id, dialogId);

            quickbloxClient.ChatXmppClient.SendMessage(groupJid, message, extraParams, dialogId, null, MessageType.Groupchat);
        }
コード例 #2
0
        /// <summary>
        /// Sends an attachemnt to another user.
        /// </summary>
        /// <param name="attachment">Attachment</param>
        /// <returns></returns>
        public void SendAttachemnt(AttachmentTag attachment)
        {
            var extraParams = new ExtraParams();

            extraParams.AddNew(ExtraParamsList.save_to_history, "1");
            extraParams.AddNew(ExtraParamsList.dialog_id, dialogId);
            extraParams.Add(attachment);

            quickbloxClient.ChatXmppClient.SendMessage(groupJid, "Attachment", extraParams, dialogId, null, MessageType.Groupchat);
        }
コード例 #3
0
        private void SendFriendsNotification(string messageText, NotificationTypes notificationType)
        {
            var extraParams = new ExtraParams();

            extraParams.AddNew(ExtraParamsList.save_to_history, "1");
            extraParams.AddNew(ExtraParamsList.dialog_id, dialogId);
            extraParams.AddNew(ExtraParamsList.notification_type, ((int)notificationType).ToString());

            quickbloxClient.ChatXmppClient.SendMessage(otherUserJid, messageText, extraParams, dialogId, null);
        }
コード例 #4
0
        private void NotifyAbountGroupOccupantsOnUpdate(IList <int> currentOccupantsIds, IList <int> addedOccupantsIds, IList <int> deletedOccupantsIds, DateTime updatedAt)
        {
            if (currentOccupantsIds == null)
            {
                throw new ArgumentNullException(nameof(currentOccupantsIds));
            }

            string currentOccupants = string.Join(",", currentOccupantsIds);

            var extraParams = new ExtraParams();

            extraParams.AddNew(ExtraParamsList.save_to_history, "1");
            extraParams.AddNew(ExtraParamsList.dialog_id, dialogId);
            extraParams.AddNew(ExtraParamsList.notification_type, NotificationTypes.GroupUpdate.ToIntString());
            extraParams.AddNew(ExtraParamsList.current_occupant_ids, currentOccupants);
            extraParams.AddNew(ExtraParamsList.room_updated_date, updatedAt.ToUnixEpoch().ToString());
            extraParams.AddNew(ExtraParamsList.dialog_update_info, DialogUpdateInfos.ModifiedOccupantsList.ToIntString());

            if (addedOccupantsIds != null && addedOccupantsIds.Any())
            {
                string addedOccupants = string.Join(",", addedOccupantsIds);
                extraParams.AddNew(ExtraParamsList.added_occupant_ids, addedOccupants);
            }

            if (deletedOccupantsIds != null && deletedOccupantsIds.Any())
            {
                string deletedOccupants = string.Join(",", deletedOccupantsIds);
                extraParams.AddNew(ExtraParamsList.deleted_occupant_ids, deletedOccupants);
            }

            quickbloxClient.ChatXmppClient.SendMessage(groupJid, "Notification Message", extraParams, dialogId, null, MessageType.Groupchat);
        }
コード例 #5
0
        private void SendGroupInfoSystemMessage(int userId, Dialog dialogInfo)
        {
            var extraParams = new ExtraParams();

            extraParams.AddNew(ExtraParamsList.moduleIdentifier, SystemMessage.SystemMessageModuleIdentifier);
            extraParams.AddNew(ExtraParamsList.notification_type, NotificationTypes.GroupCreate.ToIntString());
            extraParams.AddNew(ExtraParamsList.date_sent, DateTime.UtcNow.ToUnixEpoch().ToString());
            extraParams.AddNew(ExtraParamsList.room_updated_date, dialogInfo.UpdateAt.ToUnixEpoch().ToString());
            extraParams.AddNew(ExtraParamsList.dialog_id, dialogInfo.Id);
            extraParams.AddNew(ExtraParamsList.room_name, dialogInfo.Name);
            extraParams.AddNew(ExtraParamsList.current_occupant_ids, string.Join(",", dialogInfo.OccupantsIds));
            extraParams.AddNew(ExtraParamsList.type, ((int)dialogInfo.Type).ToString());

            if (!string.IsNullOrEmpty(dialogInfo.Photo))
            {
                extraParams.AddNew(ExtraParamsList.room_photo, dialogInfo.Photo);
            }

            var userJid = ChatXmppClient.BuildJid(userId, quickbloxClient.ApplicationId, quickbloxClient.ChatEndpoint);

            quickbloxClient.ChatXmppClient.SendMessage(userJid, "Notification Message", extraParams, dialogId, null, MessageType.Headline);
        }
コード例 #6
0
        /// <summary>
        /// Sends notification group chat Message that group chat name has been changed.
        /// </summary>
        /// <param name="groupName">New group chat name</param>
        /// <param name="updatedAt">DateTime when a group was updated (from update response)</param>
        /// <returns>Is operation successful</returns>
        public void NotifyGroupNameChanged(string groupName, DateTime updatedAt)
        {
            var extraParams = new ExtraParams();

            extraParams.AddNew(ExtraParamsList.save_to_history, "1");
            extraParams.AddNew(ExtraParamsList.dialog_id, dialogId);
            extraParams.AddNew(ExtraParamsList.notification_type, NotificationTypes.GroupUpdate.ToIntString());
            extraParams.AddNew(ExtraParamsList.room_name, groupName);
            extraParams.AddNew(ExtraParamsList.room_updated_date, updatedAt.ToUnixEpoch().ToString());
            extraParams.AddNew(ExtraParamsList.dialog_update_info, DialogUpdateInfos.UpdatedDialogName.ToIntString());

            quickbloxClient.ChatXmppClient.SendMessage(groupJid, "Notification Message", extraParams, dialogId, null, MessageType.Groupchat);
        }