Пример #1
0
        public async Task CreateChatAsync(Chat chat)
        {
            /////////////// throw
            if (chat == null)
            {
                return;
            }
            chat.Name = StringSanitizer.CleanName(chat.Name);

            _unitOfWork.Chats.Insert(chat);
            _unitOfWork.SaveChanges();

            var chatReadDto       = _mapper.Map <ChatReadDto>(chat);
            var chatReadDtoString = JsonConvert.SerializeObject(chatReadDto, _settings);

            foreach (var user in chat.UsersChats.Select(uc => uc.User))
            {
                if (_connectedUsers.ContainsKey(user))
                {
                    await _hub.Clients.Client(_connectedUsers[user]).SendAsync("NewChatCreated", chatReadDtoString);
                }
            }
        }
Пример #2
0
        public async Task UpdateChatNameAsync(int chatId, string name)
        {
            var chat = _unitOfWork.Chats.GetByID(chatId);

            /////////throw
            if (chat == null)
            {
                return;
            }

            chat.Name = StringSanitizer.CleanName(chat.Name);
            chat.Name = name;

            _unitOfWork.SaveChanges();

            foreach (var user in chat.UsersChats.Select(uc => uc.User))
            {
                var connectedUsers = _connectionsManager.ConnectedUsersByAppUser;
                if (connectedUsers.ContainsKey(user))
                {
                    await _hub.Clients.Client(connectedUsers[user]).SendAsync("ChatNameChanged", chatId, name);
                }
            }
        }