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