public void Process()
        {
            try
            {
                NetworkStream = tcpClient.GetStream();
                // получаем имя пользователя
                var message = GetMessage();
                userName = message;

                // посылаем пользователю список команд
                var welcomeMessage =
                    $"Добро пожаловать {userName}" +
                    $"\n{UserCommands.HelpMessage()}" +
                    $"\nВведите сообщение: ";
                serverObject.BroadcastMessagePersonal(welcomeMessage, Id);

                // оповещаем всех пользователей о новичке в чате
                var newUserMessage = userName + " вошел в чат";
                serverObject.BroadcastMessageToAll(newUserMessage, Id);

                Console.WriteLine(newUserMessage);

                // в бесконечном цикле получаем сообщения от клиента
                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        DecodingMessage(message);
                    }
                    catch
                    {
                        message = string.Format("{0}: покинул чат", userName);
                        Console.WriteLine(message);
                        serverObject.BroadcastMessageToAll(message, Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                serverObject.RemoveConnectionById(Id);
                Close();
            }
        }
        private void DecodingMessage(string message)
        {
            switch (message)    // обработка команд
            {
            case UserCommands.Bye:
                message = UserCommands.ByeMessage();
                serverObject.BroadcastMessagePersonal(message, Id);
                serverObject.BroadcastMessagePersonal(UserCommands.Bye, Id);
                serverObject.RemoveConnectionById(Id);
                Close();
                break;

            case UserCommands.All:
                message = UserCommands.AllMessage(serverObject.clients.Select(e => e.userName).ToList());
                serverObject.BroadcastMessagePersonal(message, Id);
                break;

            case UserCommands.Count:
                message = UserCommands.CountMessage(serverObject.clients.Count);
                serverObject.BroadcastMessagePersonal(message, Id);
                break;

            case UserCommands.Time:
                message = UserCommands.TimeMessage();
                serverObject.BroadcastMessagePersonal(message, Id);
                break;

            case UserCommands.Help:
                message = UserCommands.HelpMessage();
                serverObject.BroadcastMessagePersonal(message, Id);
                break;

            default:        // по умолчанию рассылаем всем сообщение
                message = string.Format("{0}: {1}", userName, message);
                Console.WriteLine(message);
                serverObject.BroadcastMessageToAll(message, Id);
                break;
            }
        }