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; } }