Exemple #1
0
        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));
        }
Exemple #2
0
        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);
        }