private static void HandleMessageTypeText(string sender, MessageEventArgs messageEventArgs)
        {
            var userId  = messageEventArgs.Message.From.Id;
            var message = messageEventArgs.Message.Text;

            Console.WriteLine($"{sender} отправил текстовое сообщение: {message}", true, Encoding.Unicode);

            AdminCommandHandler.HandleAdminCommands(messageEventArgs);

            var keyCommands = new[] { "/admin", "/appoint", "/timetable", "/message" };

            if (DataBaseContextAdmin.GetCommandId(userId) != (int)AdminCommandStep.Default)
            {
                return;
            }

            switch (message.ToLower().Trim())
            {
            case "/start":
                DataBaseContext.RegisterUser(messageEventArgs);
                TextMessageProcessor.CreateStartStatement(messageEventArgs);
                break;

            case "меню":
                var inlineMenu = new InlineMenu();
                inlineMenu.RunCreatingProcess(messageEventArgs, true);
                break;

            case "контакты":
                TextMessageProcessor.SendContacts(userId);
                break;

            case "заказать звонок":
                break;

            case "показать на карте":
                TextMessageProcessor.ShowInTheMap(userId);
                break;

            default:
                if (!keyCommands.Contains(message))
                {
                    TextMessageProcessor.SendAiAnswer(userId, message);
                }
                break;
            }
        }
        private static async void CreateKeyboardButtons(int userId, string firstName)
        {
            if (DataBaseContextAdmin.GetCommandId(userId) != (int)AdminCommandStep.Default)
            {
                return;
            }

            try
            {
                var replyKeyboard = KeyboardContainer.CreateDefaultKeyboard();

                await BotController.Bot.SendTextMessageAsync(userId, $"Здравствуйте, " +
                                                             $"{firstName}! \nПожалуйста, воспользуйтесь кнопками для начала работы",
                                                             replyMarkup : replyKeyboard);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex}");
            }
        }
        public static void HandleAdminCommands(MessageEventArgs messageEventArgs)
        {
            if (!DataBaseContextAdmin.CheckAdminRights(messageEventArgs.Message.From.Id))
            {
                return;
            }

            var userId    = messageEventArgs.Message.From.Id;
            var message   = messageEventArgs.Message.Text;
            var commandId = DataBaseContextAdmin.GetCommandId(userId);

            switch (commandId)
            {
            case (int)AdminCommandStep.Default:
                AdminCommand.HandleDefaultCommands(userId, message);
                break;

            case (int)AdminCommandStep.ShowUsers:
                AdminCommand.HandleTargetName(userId, message);
                break;

            case (int)AdminCommandStep.ConfirmUser:
                AdminCommand.HandleConfirmingUser(messageEventArgs, userId, message);
                break;

            case (int)AdminCommandStep.SendMessage:
                AdminCommand.HandleSendMessage(messageEventArgs, userId, message);
                break;

            case (int)AdminCommandStep.ConfirmSending:
                AdminCommand.HandleConfirmingSending(userId, message);
                break;

            case (int)AdminCommandStep.EditTimetable:
                TimetableEditor.EditTimetable(userId, message);
                break;

            case (int)AdminCommandStep.DeparturePlace:
                TimetableEditor.SetDeparturePlace(userId, message);
                break;

            case (int)AdminCommandStep.DepartureDate:
                TimetableEditor.SetDepartureDate(userId, message);
                break;

            case (int)AdminCommandStep.DepartureTime:
                TimetableEditor.SetDepartureTime(userId, message);
                break;

            case (int)AdminCommandStep.ArrivalPlace:
                TimetableEditor.SetArrivalPlace(userId, message);
                break;

            case (int)AdminCommandStep.ArrivalDate:
                TimetableEditor.SetArrivalDate(userId, message);
                break;

            case (int)AdminCommandStep.ArrivalTime:
                TimetableEditor.SetArrivalTime(userId, message);
                break;

            case (int)AdminCommandStep.SetTripIdEdit:
                TimetableEditor.ChooseTripIdToEdit(userId, message);
                break;

            case (int)AdminCommandStep.SetTripIdDel:
                TimetableEditor.ChooseTripIdToDelete(userId, message);
                break;

            case (int)AdminCommandStep.ChooseTripColumn:
                TimetableEditor.ChooseTripColumn(userId, message);
                break;

            case (int)AdminCommandStep.EditTripColumn:
                TimetableEditor.EditTripColumn(userId, message);
                break;
            }
        }