public void DisableClient(ConnectedUser user)
 {
     ConnectedUsers.Remove(user);
     user?.TcpClient?.Close();
     SendMessageToAllUsersAsync(null, $"{user.Login} отключился от сервера");
     DisplayColoredText($"Соеденение с пользователем {user.Login} разорвано", ConsoleColor.Red);
 }
        private void Autorization(string inputLogin, string inputPassword, TcpClient client)
        {
            DisplayColoredText($"Пользователь {inputLogin} пытается войти", ConsoleColor.Yellow);
            using var Database = new DarkChatDbContext();
            User user = Database.Users.FirstOrDefault(u => u.Login == inputLogin);

            if (user?.Login == inputLogin && VerifyHashedPassword(user.Password, inputPassword))//проверка данных пользователя
            {
                //TODO: Реализовать нормальную проверку есть ли уже этот пользователь на сервере или его нету
                bool userIsPresentOnTheServer = ConnectedUsers.Any(u => u.Login == inputLogin);
                if (userIsPresentOnTheServer == false)
                {
                    SendResponce("success", client);
                    DisplayColoredText($"Пользователь {user.Login} идентифицирован", ConsoleColor.Green);
                    SendMessageToAllUsersAsync(null, $"Пользователь {user.Login} вошел на сервер");

                    ConnectedUser connectedUser = new ConnectedUser(user, client);
                    ConnectedUsers.Add(connectedUser);
                    ListenMessageFromUserAsync(connectedUser);
                }
                else
                {
                    SendResponce("Fail: Такой аккаунт уже присутствует на сервере", client);
                    DisplayColoredText($"Warning! Произошла попытка входа на один аккаунт с двух разных клиентов, на аккаунт пользователя под именем {inputLogin}"
                                       , ConsoleColor.Red);
                }
            }
            else
            {
                SendResponce("Fail: Неверные данные авторизации", client);
                DisplayColoredText($"Пользователь {inputLogin} не идентифицирован", ConsoleColor.Red);
            }
        }
        async private void SendMessageToAllUsersAsync(ConnectedUser sender, string message)
        {
            await Task.Run(() =>
            {
                string resultMessage = $"[{DateTime.Now}] {sender?.Login}: {message}"; //TODO: Тут подумать про то что мы можем изменять изменять сообзения по хотению
                DisplayColoredText(resultMessage, ConsoleColor.White);

                foreach (var user in ConnectedUsers)//TODO:Тут была сомнительная проверка if (user.TcpClient.Connected)
                {
                    SendResponce(resultMessage, user.TcpClient);
                }
            });
        }
        async private void ListenMessageFromUserAsync(ConnectedUser user)
        {
            await Task.Run(() =>
            {
                while (true)
                {
                    string message = GetDataFromClient(user.TcpClient); //метод GetDataFromClient в случай ошибки отключит пользователя от сервера
                    if (message == string.Empty)
                    {
                        ConnectedUsers.Remove(user);
                        return;
                    }

                    SendMessageToAllUsersAsync(sender: user, message);
                    Thread.Sleep(400);
                }
            });
        }