public static async void ChooseTripIdToEdit(int userId, string message) { try { var temp = message; if (message == "Назад") { StartEditTimetable(userId); } else if (message == "Отмена") { Undo(userId); } else if (!int.TryParse(temp, out var tempInt)) { await BotController.Bot.SendTextMessageAsync(userId, "Введите число, которое является ID рейса."); } else { if (!DataBaseContextAdmin.CheckTripId(tempInt)) { await BotController.Bot.SendTextMessageAsync(userId, "Введите существующий ID рейса."); } DataBaseContextAdmin.SetTripId(userId, tempInt); await BotController.Bot.SendTextMessageAsync(userId, "Выберите, что будете редактировать.", replyMarkup : KeyboardContainer.CreateTimetableEditTripKeyboard()); DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.ChooseTripColumn); } } catch (Exception e) { Console.WriteLine(e); } }
public static async void EditTripColumn(int userId, string message) { try { if (message == "Назад") { await BotController.Bot.SendTextMessageAsync(userId, "Выберите, что будете редактировать.", replyMarkup : KeyboardContainer.CreateTimetableEditTripKeyboard()); DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.ChooseTripColumn); } else if (message == "Отмена") { Undo(userId); } else { DataBaseContextAdmin.UpdateTripColumn(DataBaseContextAdmin.GetTripId(userId), DataBaseContextAdmin.GetColumn(userId), message); StartEditTimetable(userId); } } catch (Exception e) { Console.WriteLine(e); } }
public static async void EditTimetable(int userId, string message) { if (message == "Добавить рейс") { DataBaseContextAdmin.AddTrip(); DataBaseContextAdmin.SetTripId(userId, DataBaseContextAdmin.GetLastTripId()); DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.DeparturePlace); await BotController.Bot.SendTextMessageAsync(userId, "Откуда рейс?", replyMarkup : KeyboardContainer.CreateTwoKeyboardAdminButtons()); } if (message == "Редактировать рейс") { await BotController.Bot.SendTextMessageAsync(userId, "Введите ID рейса для редактирования.", replyMarkup : KeyboardContainer.CreateTwoKeyboardAdminButtons()); DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.SetTripIdEdit); } if (message == "Удалить рейс") { await BotController.Bot.SendTextMessageAsync(userId, "Введите ID рейса для удаления.", replyMarkup : KeyboardContainer.CreateTwoKeyboardAdminButtons()); DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.SetTripIdDel); } if (message == "Отмена") { Undo(userId); } }
private static async void Undo(int userId) { await BotController.Bot.SendTextMessageAsync(userId, "Для вывода команд введите /admin", replyMarkup : KeyboardContainer.CreateDefaultKeyboard()); DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.Default); }
private static async void GetForwardingMessage(int userId) { try { await BotController.Bot.SendTextMessageAsync(userId, "Отправьте сообщение для рассылки (только текст (обычный и форматированный) и эмодзи).", replyMarkup : KeyboardContainer.CreateThreeKeyboardAdminButtons()); DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.SendMessage); } catch (Exception e) { Console.WriteLine(e); } }
public static async void ChooseTripColumn(int userId, string message) { try { var keyCommands = new Dictionary <string, string>(); keyCommands.Add("Место отправки", AdminCommandStep.DeparturePlace.ToString()); keyCommands.Add("Дата отправки", AdminCommandStep.DepartureDate.ToString()); keyCommands.Add("Время отправки", AdminCommandStep.DepartureTime.ToString()); keyCommands.Add("Место прибытия", AdminCommandStep.ArrivalPlace.ToString()); keyCommands.Add("Дата прибытия", AdminCommandStep.ArrivalDate.ToString()); keyCommands.Add("Время прибытия", AdminCommandStep.ArrivalTime.ToString()); if (keyCommands.ContainsKey(message)) { keyCommands.TryGetValue(message, out var resMessage); DataBaseContextAdmin.SetColumn(userId, resMessage); await BotController.Bot.SendTextMessageAsync(userId, "Введите новое значение.", replyMarkup : KeyboardContainer.CreateTwoKeyboardAdminButtons()); DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.EditTripColumn); } else if (message == "Назад") { await BotController.Bot.SendTextMessageAsync(userId, "Введите ID рейса для редактирования.", replyMarkup : KeyboardContainer.CreateTwoKeyboardAdminButtons()); DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.SetTripIdEdit); } else if (message == "Отмена") { Undo(userId); } else { await BotController.Bot.SendTextMessageAsync(userId, "Выберите, что будете редактировать."); } } catch (Exception e) { Console.WriteLine(e); } }
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}"); } }
private static async void ShowUsers(int userId) { try { var users = DataBaseContextAdmin.GetAllUserNames(); var userNames = string.Join(", ", users); await BotController.Bot.SendTextMessageAsync(userId, "Выберите и введите username пользователя, которого хотите назначить администратором. " + "Здесь показаны только те пользователи, которые имеют username. Если среди них нет нужного пользователя," + "он должен выставить username в настройках своего профиля Telegram и ввести /start в боте, тогда его данные обновятся.", replyMarkup : KeyboardContainer.CreateThreeKeyboardAdminButtons()); Thread.Sleep(10); await BotController.Bot.SendTextMessageAsync(userId, userNames); DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.ShowUsers); } catch (Exception e) { Console.WriteLine(e); } }
public static async void StartEditTimetable(int userId) { try { await BotController.Bot.SendTextMessageAsync(userId, $"Какие действия произвести с текущим расписанием?" + $"{ShowTimetableWithId()}", replyMarkup : KeyboardContainer.CreateTimetableEditKeyboard()); DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.EditTimetable); } catch (Exception e) { Console.WriteLine(e); } }