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); }
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()); } }