Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        private static async void Undo(int userId)
        {
            await BotController.Bot.SendTextMessageAsync(userId, "Для вывода команд введите /admin",
                                                         replyMarkup : KeyboardContainer.CreateDefaultKeyboard());

            DataBaseContextAdmin.SetCommandId(userId, (int)AdminCommandStep.Default);
        }
Пример #5
0
        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);
            }
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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}");
            }
        }
Пример #8
0
        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);
            }
        }
Пример #9
0
        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);
            }
        }