public ChatResponse Create(Guid groupId, string username) { var chat = new Models.Chat { Id = Guid.NewGuid(), GroupId = groupId }; var chatUserAuthorized = new ChatUser(_authorizedUser, chat); _chatUserRepository.Add(chatUserAuthorized); var user = _userRepository.GetUserByUsername(username); var chatUser = new ChatUser(user, chat); _chatUserRepository.Add(chatUser); var chatUserAuthorizedDocument = new Documents.ChatUser(_authorizedUser.Id, chat.Id); var chatUserDocument = new Documents.ChatUser(user.Id, chat.Id); _chatUserStore.AddToBus(chatUserAuthorizedDocument); _chatUserStore.AddToBus(chatUserDocument); var group = _groupRepository.Get(groupId); _chatEventService.AddChatCreatedEvent(group, _authorizedUser, chat); _chatEventService.AddUserAddedToChatEvent(group, _authorizedUser, _authorizedUser, chat); _chatEventService.AddUserAddedToChatEvent(group, _authorizedUser, user, chat); return(_mapper.Map <ChatResponse>(chat)); }
public void AddUserToChatByUsername(string username, Guid chatId) { var user = _userRepository.GetUserByUsername(username); var chat = _chatRepository.Get(chatId); var chatUser = new ChatUser(user, chat); _chatUserRepository.Add(chatUser); var chatUserDocument = new Documents.ChatUser(user.Id, chatId); _chatUserStore.AddToBus(chatUserDocument); _chatEventService.AddUserAddedToChatEvent(chat.Group, _authorizedUser, user, chat); }