Beispiel #1
0
        public void AddUserToGroup(Models.Chat chat, Models.ChatUser chatUser)
        {
            if (!chat.IsGroup || chat.Setting == null)
            {
                return;
            }

            var chatUserData = new Models.View.ChatUser(chatUser);

            chatUser.User?.DeviceIds?.ForEach(deviceId =>
            {
                SendMessage(
                    deviceId.DeviceId,
                    chat.Id.ToString(),
                    chat.Setting.Name,
                    "user_added",
                    chatUserData,
                    true,
                    MessagePriority.high
                    ).ConfigureAwait(false);
            });

            SendMessage(
                "/topics/group_" + chat.Setting.Address,
                chat.Id.ToString(),
                chat.Setting.Name,
                "user_added",
                chatUserData,
                true,
                MessagePriority.high
                ).ConfigureAwait(false);
        }
Beispiel #2
0
        public Chat(Models.Chat chat, string userAddress, bool includeUsers = true)
        {
            Id   = chat.Id;
            Type = chat.GetType();

            MessageCount = chat.Messages.Count;

            if (Type == Constants.Chat.Type.Normal)
            {
                var chatPartner = chat.GetPartner(userAddress);
                if (chatPartner != null)
                {
                    ChatUser = new Models.View.ChatUser(chatPartner);
                }
            }
            else if (Type == Constants.Chat.Type.Group)
            {
                if (chat.Setting != null)
                {
                    ChatSetting = new Models.View.ChatSetting(chat.Setting, userAddress, chat.Users, includeUsers);
                }
            }

            if (chat.Messages.Count > 0)
            {
                ChatMessage = new Models.View.ChatMessage(chat.Messages.OrderBy(m => m.InternalId).Last());
            }
        }