public async Task CreateChat(ChatCreateDto chatCreateDto) { if (chatCreateDto != null) { var chat = new Chat { Name = chatCreateDto.Name, Users = new List <User>(), ChatType = chatCreateDto.ChatType, AdminId = chatCreateDto.AdminId }; foreach (var userId in chatCreateDto.UsersId) { var user = await _signInManager.UserManager.FindByIdAsync(userId); if (user != null) { chat.Users.Add(user); } } await dbContext.Chats.AddAsync(chat); await dbContext.SaveChangesAsync(); var newChatDto = new ChatDto { Id = chat.Id.ToString(), ChatType = chatCreateDto.ChatType, Name = chat.Name, AdminId = chatCreateDto.AdminId }; await Clients.Clients(chatService.GetConnectionsFromUser(chat.Users).ToList()).OnNewChatConected(newChatDto); } }
public async Task <IActionResult> CreateChat([FromBody] ChatCreateDto chatCreateDto) { var user = _unitOfWork.Users.GetByID(chatCreateDto.OwnerId); if (user == null) { return(NotFound()); } var chat = new Chat { Name = chatCreateDto.Name, IsGroupChat = true, Owner = user }; var userChat = new UsersChats { User = user, Chat = chat }; chat.UsersChats.Add(userChat); await _chatsManager.CreateChatAsync(chat); return(Created("", chatCreateDto)); }